【发布时间】:2012-05-07 17:02:45
【问题描述】:
我正在尝试从 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 库以满足需要,但是现在我只想按原样使用它。
【问题讨论】:
-
你看过writeMultiByte吗? help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/…
-
如果您愿意,可以帮助我解决与此帖子相关的问题:stackoverflow.com/questions/10494006/…
标签: java javascript actionscript-3 apache-flex