Google Native Client,将二进制数据从NACL端发送到前端Javascript

JJi*_*Jin 8 javascript c++ arrays google-nativeclient

如何将二进制数据egmp3/mp4数据发送回前端Javascript端?

我知道有两种方法可以实现:利用NACL提供的沙盒文件系统并获取前端的url; 通过mp3/mp4使用传递数据PostMessage().如果有人能给我一个如何传递二进制数据的简单例子,那就太好了VarArrayBuffer.NACl FileSystem API有一个Pong示例,但我对如何将文件位置检索为url感到困惑,以便前端js可以通过消息获取它.

这是我到目前为止所做的,使用第二种方法传递数据PostMessage()PostMessage():

  • 我成功地从在线mp4文件中检索数据并将其存储在char矢量中VarArrayBuffer.

  • 将数据转储到新的char缓冲区并创建vector<char> outputBuffer以保存数据并将其传递给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
    
    Run Code Online (Sandbox Code Playgroud)

那么,JS方面应该如何捕获数组缓冲区?通过VarArrayBuffer还是其他什么?谢谢.