我做一个实时抓取Mic录音数据的小APP, HTML5 Plus提供的Audio 方法只能录音到文件,所以想通过Native JS 直接调用MediaRecorder。
我的代码如下:
mui.plusReady(function() {
var SAMPLE_RATE_IN_HZ = 22050;
var AudioRecord = plus.android.importClass('android.media.AudioRecord');
var AudioFormat = plus.android.importClass('android.media.AudioFormat');
var bs = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
var ar = new AudioRecord(1, SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bs);
ar.startRecording();
var buffer = new Uint16Array(bs);
while (true) {
var r = ar.read(buffer, 0, bs);
console.log(r);
//其它代码
}
});
现在的问题时 ar.read(buffer,0,bs)这句总是返回null, 也没有什么错误消息啥的, 求大神指点!!
3 个回复
BurningFire (作者)
看来这个问题很冷僻啊,没有人有经验么?
2***@qq.com
目前也做实时通话功能,mui 官方示例 录音这能获取到文件,不能实时获取文件流,正是太难搞了
2***@qq.com - 无名
我也遇到一样的问题,调用read出错