HarmonyOS 鸿蒙Next该如何获取麦克风权限,并进行音频流输出呢?

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next该如何获取麦克风权限,并进行音频流输出呢?

目前我已经使用开源三方库ijkplayer播放RTSP视频流了,完成了视频的获取。现在要进行语音通话,服务端支持的音频流是:“url”:"",//音视频流, 支持rtsp:// http:// udp://

我该如何获取麦克风权限,发送音频流url呢?

求助大佬。

2 回复

申请权限这样申请就行:

  1. aboutToAppear() {
        // 配置Web开启调试模式
        webview.WebviewController.setWebDebuggingAccess(true);
        let atManager = abilityAccessCtrl.createAtManager();
        atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.CAMERA', 'ohos.permission.MICROPHONE'])
          .then((data) => {
            console.info('data:' + JSON.stringify(data));
            console.info('data permissions:' + data.permissions);
            console.info('data authResults:' + data.authResults);
          }).catch((error: BusinessError) => {
          console.error(`Failed to request permissions from user. Code is ${error.code}, message is ${error.message}`);
        })
      } 

至于其他得看这里应该对你有帮助:

https://gitee.com/openharmony-sig/ohos_ijkplayer/blob/develop/ijkplayer/src/main/cpp/third_party/soundtouch/include/ijksoundtouch_wrap.h 

HarmonyOS 鸿蒙Next获取麦克风权限并进行音频流输出的步骤如下:

首先,在使用的模块下的module.json5中添加麦克风权限,代码为:

{
	"name": "ohos.permission.MICROPHONE",
	"reason": "$string:permission_desc_for_MICROPHONE",
	"usedScene": {
		"abilities": ["EntryAbility"],
		"when": "inuse"
	}
}

其次,向用户申请授权,可以使用以下代码:

let atManager = abilityAccessCtrl.createAtManager();
let permissions = ['ohos.permission.MICROPHONE'];
atManager.requestPermissionsFromUser(context, permissions).then((data) => {
	// 处理授权结果
}).catch((err) => {
	// 处理错误
});

用户同意授权后,应用即可使用麦克风进行音频采集。此时,可以利用AudioCapturer创建音频采集器收集音频数据,并写入文件至沙箱中。

最后,若要实现音频流输出,可以使用AudioRenderer播放沙箱中写入的音频文件。

如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html

回到顶部