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

HarmonyOS
2天前
浏览
收藏 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%')
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
OpenSL ES音频录制示例调用崩溃
1929浏览 • 1回复 待解决
HarmonyOS 音频播放设备切换
269浏览 • 1回复 待解决
HarmonyOS 设备扬声器怎么打开
28浏览 • 1回复 待解决
HarmonyOS实现后台播放音频
498浏览 • 1回复 待解决
OH _Audio播放音频问题
2166浏览 • 1回复 待解决
AudioCapturer录音+AudioRenderer播放音频
1316浏览 • 1回复 待解决
HarmonyOS 音频设备切换问题
310浏览 • 1回复 待解决
鸿蒙Dev远程真机能否播放音频
5506浏览 • 1回复 待解决