HarmonyOS 扬声器开关状态如何监听

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

通话服务中的扬声器事件,可以参考应用上报通话中的静音、扬声器事件:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/call-report-audio-event-V5

三方应用可以使用AVCastPicker组件来实现听筒和扬声器的切换,使用on('preferOutputDeviceChangeForRendererInfo')可以监听AvCastPicker听筒扬声器的切换,从而获得扬声器开关状态,核心代码如下:

AVCastPicker()
  .width('40vp')
  .height('40vp')
  .border({ width: 1, color: Color.Red })
  .onTouch(() => {
    this.Monitorer();
  })

Monitorer() {
  let rendererInfo: audio.AudioRendererInfo = {
    usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
    rendererFlags : 0
  }

  let audioManager = audio.getAudioManager();
  let audioRoutingManager: audio.AudioRoutingManager | undefined = audioManager.getRoutingManager();;
  audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => {
    console.info(`-----device descriptor: ${desc[0].deviceType}`);
  });
}

输出2代表扬声器播放,此时扬声器是打开状态,输出1代表听筒播放,此时扬声器是关闭状态。

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 设备的扬声器怎么打开
312浏览 • 1回复 待解决
HarmonyOS 如何获取手机GPS开关状态
164浏览 • 1回复 待解决
HarmonyOS Toggle开关状态控制
203浏览 • 1回复 待解决
HarmonyOS 如何监听折叠/展开状态
159浏览 • 1回复 待解决
HarmonyOS 关于@Watch监听状态问题
645浏览 • 1回复 待解决
如何监听设备横竖屏切换状态
1852浏览 • 1回复 待解决