Как отправить двоичные данные, например, данные .mp3 / mp4 обратно на сторону Javascript внешнего интерфейса?
Я знаю, что есть два способа сделать это: использовать файловую систему песочницы, предоставленную NACL, и получить URL-адрес во внешнем интерфейсе; передавая данные через PostMessage()
с помощью VarArrayBuffer
, Было бы здорово, если бы кто-нибудь мог дать мне простой пример того, как передавать двоичные данные через PostMessage()
, Есть пример Pong для NACl FileSystem API, но я немного запутался, как получить местоположение файла в виде URL, чтобы интерфейс js мог получить его через сообщение.
Вот что я сделал до сих пор, используя второй метод передачи данных через PostMessage()
а также VarArrayBuffer
:
Я успешно получил данные из онлайн-файла mp4 и сохранил их в векторном виде vector<char> outputBuffer
,
Сброс данных в новый буфер символов и создание VarArrayBuffer
держать данные и передавать их на сторону JS
char* binaryBuffer = new char[outputBuffer.size()];
int increment = 0;
for (vector<char>::iterator it = outputBuffer.begin();
it != outputBuffer.end(); it++) {
binaryBuffer[increment] = *it;
}
pp::VarArrayBuffer outBuffer(binaryBuffer);
instance_->PostMessage(outBuffer);//instance_ is a NACL module instance
Итак, как сторона JS должна перехватить буфер массива? Это через message.data
или что-то другое? Благодарю.
Задача ещё не решена.
Других решений пока нет …