如何发送二进制数据,例如mp3/mp4
数据回到前端?
我知道有两种方法可以做到这一点:利用NACL提供的沙盒文件系统并获取前端的url;使用PostMessage()
通过VarArrayBuffer
传递数据。如果有人能给我一个如何通过PostMessage()
传递二进制数据的简单示例,那将会很棒。 NACl FileSystem API有一个Pong示例,但我对如何将文件位置检索为url感到困惑,以便前端JS可以通过消息获取它。
以下是我到目前为止所做的工作,使用第二种方法通过PostMessage()
和VarArrayBuffer
传递数据:
我成功从在线mp4文件中检索数据并将其存储在char矢量vector<char> outputBuffer
中。
将数据转储到新的char缓冲区并创建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
还是别的?