我正在尝试从 AS 库中获取音频数据,从文档中该函数如下所示:
protected function audioData():String
{
var ret:String="";
buffer.position = 0;
while (buffer.bytesAvailable > 0)
{
ret += buffer.readFloat().toString() + ";";
}
return ret;
}
在我的代码和这个库之间是另一个具有此代码的 js:
audioData: function(){
return this.flashInterface().audioData().split(";");
},
从我的代码中,我可以像这样访问:
function getdata(){
var data = Recorder.audioData();
console.log("audioData: " + data);
}
但是,我尝试将返回的值输出到 Firebug,我得到了一个很长的逗号分隔的浮点值列表,我怎样才能取回 byte[] 缓冲区?我所说的缓冲区类似于 Java,因为我将通过JSNI从 Java 访问缓冲区。
这是示例日志输出(实际日志很长):
-0.00030517578125,0.00006103515625,0.00115966796875,0.00146484375,-0.00091552734375,-0.000946044921875,-0.001983642578125,-0.003997802734375,-0.005126953125,-0.00360107421875,-0.0032958984375,-0.004119873046875,-0.00433349609375,-0.0023193359375,-0.0008544921875,-0.003448486328125,-0.00347900390625,-0.0054931640625 ,-0.0067138671875,-0.005279541015625,-0.006072998046875,
我无法重新编译创建输出的 AS,现在我可以做的是在 javascript 中连接到 SWF 组件并接受它的浮点并将其转换回字节数组。我在 FDT 5 IDE 中的 AS 项目中存在太多错误,我已经需要对我的应用程序进行模型化了。
我真的很想重新编译 AS 库以满足需要,但是现在我只想按原样使用它。