HarmonyOS createAudioCapturer调用{"code":6800301}

HarmonyOS
2024-12-27 15:33:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

code 6800301 指的是系统处理异常,通常情况是音频采集需要调用麦克风录制音频,但该行为属于隐私敏感行为,在调用麦克风前,需要先向用户申请权限“ohos.permission.MICROPHONE”。看一下麦克风权限配置是否正确

"requestPermissions": [
{
  "name": "ohos.permission.MICROPHONE",
"reason": "$string:app_name",
"usedScene": {
  "abilities": [
  "EntryAbility"
  ],
  "when": "always"
}
}
]

demo如下,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/using-audiocapturer-for-recording-V5

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';
import { abilityAccessCtrl, PermissionRequestResult, Permissions } from '@kit.AbilityKit';

@Entry
@Component
struct Index10 {

  @State message: string = '';
  context: Context = getContext(this) as Context;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button("点") .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let permissions: Array<Permissions> = ['ohos.permission.MICROPHONE'];
            let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
            // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
            atManager.requestPermissionsFromUser(this.context, permissions).then((data: PermissionRequestResult) => {
              let grantStatus: Array<number> = data.authResults;
              let length: number = grantStatus.length;
              for (let i = 0; i < length; i++) {
                if (grantStatus[i] != 0) {
                  // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
                  return;
                }
              }
              fun1();
              console.info(` Success to request permissions from user. authResults is ${grantStatus}.`); })
              .catch((err: BusinessError) => {
                console.error(` Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
              })
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

function fun1() {
  let audioStreamInfo: audio.AudioStreamInfo = {
    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率
    channels: audio.AudioChannel.CHANNEL_2, // 通道
    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式
    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式
  };
  let audioCapturerInfo: audio.AudioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags: 0
  };
  let audioCapturerOptions: audio.AudioCapturerOptions = {
    streamInfo: audioStreamInfo,
    capturerInfo: audioCapturerInfo
  };
  audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
    if (err) {
      console.error(`Invoke createAudioCapturer failed, code is ${err.code}, message is ${err.message}`);
    } else {
      console.info('Invoke createAudioCapturer succeeded.');
    }
  });
}
分享
微博
QQ
微信
回复
2024-12-27 17:36:06
相关问题
HarmonyOS 安装报错code: 9568332
855浏览 • 1回复 待解决
HarmonyOS hap安装报错 code:9568305
650浏览 • 1回复 待解决
HarmonyOS 安装APP报错code:9568289
1583浏览 • 1回复 待解决
HarmonyOS socket连接失败code: 103
320浏览 • 1回复 待解决
HarmonyOS 获取push token error code 1000900010
446浏览 • 2回复 待解决
HarmonyOS 打包签名失败报错code:109
417浏览 • 1回复 待解决
HarmonyOS 闪退报错 Error code:2100001
408浏览 • 1回复 待解决
react-native-code-push组件HarmonyOS
287浏览 • 1回复 待解决
HarmonyOS 创建首选项报错code:15500000
567浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人