HarmonyOS audio.AudioCapturer的on('readData')与off('readData')问题
由于APP功能需要,我们使用到audio.AudioCapturer功能,早先我们使用capture.getBufferSize()与capture.read(bufferSize, true),因read提示已deprecated,于是我们更新至on('readData')与off('readData')实现同样功能。
然后我们遇到了预期外的结果,API文档显示这两个函数功能如下:
on(type: 'readData', callback: Callback<ArrayBuffer>): void
订阅监听音频数据读入回调,使用callback方式返回结果。
off(type: 'readData', callback?: Callback<ArrayBuffer>): void
取消订阅监听音频数据读入回调,使用callback方式返回结果。
起初,我们的理解是这两个是成对使用的,然而使用上发现与理解有偏差的地方:
- on('readData')写在capture.start()后面无效,写在start()前面有效,原来担心start之前订阅readData,会过早调用readData过程的问题,似乎也不存在。即违反逻辑顺序,但不会发生预期错误。
- on('readData')不需要与off('readData')成对存在,我们试过在audio.createAudioCapturer之后star之t前调用on('readData')且仅调用一次,后面多次off('readData')-stop-start-readData过程-off('readData')-stop-start-readData过程的循环中,on('readData')虽然不再被调用,但readData过程依旧会被调用。
因为我们无法得知这些是否是API设计如此我们理解有偏差,还是功能未完善所致,如果是后者,一旦该功能在后续得到完善,可能会使我们已测试无误的功能发生预期外的情况。因此提出问题,希望能得到开发指导意见。
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS audio.AudioCapturer录音得到的wav文件播放功能实现
642浏览 • 1回复 待解决
HarmonyOS 通过audio.AudioCapturer录制音频,却没有数据。写入文件,也无法播放
660浏览 • 1回复 待解决
HarmonyOS AudioCapturer使用问题
600浏览 • 1回复 待解决
系统监听注册的on和off的用法问题
2687浏览 • 1回复 待解决
HarmonyOS AudioCapturer API相关问题
706浏览 • 1回复 待解决
OH_Audio在使用接口OH_AudioCapturer_Start采集的时候,不走采集的回调
2790浏览 • 2回复 待解决
OH _Audio播放音频问题
3060浏览 • 1回复 待解决
HarmonyOS 使用audio.createAudioCapturer开发音频录制功能,调用audioCapturer.stop的时候报错 error:{ code: 600301, message
820浏览 • 1回复 待解决
HarmonyOS audio.AudioRenderer
479浏览 • 1回复 待解决
HarmonyOS emitter.off 不执行会不会有问题
1119浏览 • 1回复 待解决
HarmonyOS MultiHap项目运行,点击audio按钮、跳转不到audio页面,报错16000001
1206浏览 • 1回复 待解决
HarmonyOS native audio 录制编译报错
1225浏览 • 1回复 待解决
HarmonyOS调用 gattClient.off('BLECharacteristicChange') 项目闪退
1156浏览 • 0回复 待解决
HarmonyOS Window 在 aboutToDisappear 进行 off listener 触发 error
491浏览 • 1回复 待解决
HarmonyOS AudioCapturer录音后的文件无法播放
608浏览 • 1回复 待解决
鸿蒙的Audio Kit(音频服务)有什么优势?
1145浏览 • 1回复 待解决
HarmonyOS OH_Audio 需要提供 mute 方法
1208浏览 • 1回复 待解决
HarmonyOS audio.createAudioCapturer返回6800301错误
520浏览 • 1回复 待解决
HarmonyOS 录制音频选择AudioCapturer还是AVRecorder
1437浏览 • 1回复 待解决
hilog -p off 在IDE中怎么关
921浏览 • 1回复 待解决
HarmonyOS audioCapturer release失败会如何
937浏览 • 1回复 待解决
HarmonyOS AudioCapturer录制的音频文件无法播放
781浏览 • 1回复 待解决
HarmonyOS UIAbility与UIExtensionAbility的使用问题
1186浏览 • 1回复 待解决
HarmonyOS flutter依赖插件audio_session报错
705浏览 • 1回复 待解决
对于第一个问题,监听肯定是要先注册,再start,比如监听状态变化的,创建了对象处于空闲状态,如果调用start了再去注册,那状态都已经变化了,就不能监听到这个事件了,也就是说,on(‘readData’)在capture.start()前面是正确的。
关于第二个问题,on和off不需要成对存在,应该先stop,再使用off停止监听。