HarmonyOS audioManager监听音量变化无回调

在组件aboutToAppear时增加了音量监听,但是调声音时,回调并没有被调用 。(在debug时有一次成功接收了,只成功了这一次),代码示例:

aboutToAppear(): void {
  LogUtil.d('llyy', 'aboutToAppear')
  let audioManager = audio.getAudioManager();
  let audioVolumeManager = audioManager.getVolumeManager();
  audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
  LogUtil.d('llyy', `VolumeType of stream: ${volumeEvent.volumeType} `);
console.info(`Volume level: ${volumeEvent.volume} `);
console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
if (volumeEvent.volumeType === audio.AudioVolumeType.MEDIA) {
  this.muted = false;
}
});
}

其中回调中的log没有输出,debug也走不到。

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

audioManager是局部变量,局部变量出来之后就被析构了。

参考代码:

@State audioManager:audio.AudioManager |null=null
@State audioVolumeManager:audio.AudioVolumeManager | null =null
voiceChangeDemo() {
  console.info('tag', 'aboutToAppear')
  this.audioManager = audio.getAudioManager();
  this.audioVolumeManager = this.audioManager?.getVolumeManager();
  this.audioVolumeManager?.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
    console.info('tag', `VolumeType of stream: ${volumeEvent.volumeType} `);
    console.info(`Volume level: ${volumeEvent.volume} `);
    console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
  });
}
aboutToAppear(): void {
  this.voiceChangeDemo()
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS Grid拖拽
39浏览 • 1回复 待解决
HarmonyOS 屏幕亮度变化
23浏览 • 1回复 待解决
HarmonyOS 音量监听可以取消监听
32浏览 • 1回复 待解决
HarmonyOS 位置权限变更监听问题
97浏览 • 1回复 待解决
HarmonyOS 属性动画怎么监听
316浏览 • 1回复 待解决
HarmonyOS升级版本后音量监听失效
573浏览 • 0回复 待解决
监听音频打断事件,该如何处理?
1036浏览 • 1回复 待解决