我如何发送二进制数据,例如mp3/mp4
数据返回到前端?
我知道有这样做的两种方法:利用受盐所提供的沙箱的文件系统,并获得在前端的URL; 通过使所述数据PostMessage()
使用VarArrayBuffer
。 这将是巨大的,如果有人可以给我如何通过传递二进制数据一个简单的例子PostMessage()
有一个例子傍对于摩NACl文件系统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
还是其他什么东西?