HarmonyOS 如何在使用opensl es播放音频场景下,非系统应用切换音频输出设备为(听筒/扬声器)

HarmonyOS
2024-12-20 17:18:36
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

目前媒体的切换音频输出设备接口为系统接口(仅系统应用可以调用),非系统应用可以使用AVCastPicker组件来实现。请参考如下实现

使用的OS能力相关的核心API

@ohos.multimedia.avCastPicker

@ohos.multimedia.avsession

核心代码解释

首先要创建voice_call类型的会话session,激活接口要在元数据、控制命令注册完成之后再执行

核心代码如下:

import AVCastPicker from '@ohos.multimedia.avCastPicker'
import AVSessionManager from '@ohos.multimedia.avsession';
@Entry
@Component
struct Index {
  async onPageShow(){
    // 开始创建并激活媒体会话
    // 创建session
    let context: Context = getContext(this)
    let type: AVSessionManager.AVSessionType = 'voice_call';
    let session = await AVSessionManager.createAVSession(context,'SESSION_NAME', type);
    console.log('AVSession成功:'+JSON.stringify(session))
    // 激活接口要在元数据、控制命令注册完成之后再执行
    await session.activate();
    console.info(session create done : sessionId : ${session.sessionId});
  }
  build() {
    Row() {
      Column() {
        AVCastPicker()
          .width('40vp')
          .height('40vp')
          .border({ width: 1, color: Color.Red })
      }.height('50%')
    }.width('50%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
分享
微博
QQ
微信
回复
2024-12-20 20:05:23
相关问题
OpenSL ES音频录制示例调用崩溃
2682浏览 • 1回复 待解决
HarmonyOS 音频播放设备切换
1229浏览 • 1回复 待解决
HarmonyOS 设备扬声器怎么打开
721浏览 • 1回复 待解决
HarmonyOS 播放音频的示例
655浏览 • 1回复 待解决
HarmonyOS ohaudio音频播放设备切换问题
651浏览 • 1回复 待解决
OH _Audio播放音频问题
3076浏览 • 1回复 待解决
HarmonyOS实现后台播放音频
1434浏览 • 1回复 待解决
AudioCapturer录音+AudioRenderer播放音频
2399浏览 • 1回复 待解决