HarmonyOS鸿蒙Next中createAudioCapturer调用{"code":6800301}

HarmonyOS鸿蒙Next中createAudioCapturer调用{“code”:6800301}

Cannot get SourceMap info, dump raw stack:

=====================Backtrace========================

#01 pc 000000000012352b /system/lib64/module/multimedia/libaudio.z.so
#02 pc 00000000001233d3 /system/lib64/module/multimedia/libaudio.z.so
#03 pc 00000000000479eb /system/lib64/platformsdk/libace_napi.z.so
#04 pc 0000000000012cbb /system/lib64/platformsdk/libuv.so
#05 pc 00000000000172bb /system/lib64/platformsdk/libuv.so
#06 pc 0000000000016c03 /system/lib64/platformsdk/libuv.so
#07 pc 000000000001772b /system/lib64/platformsdk/libuv.so
#08 pc 0000000000069047 /system/lib64/platformsdk/libruntime.z.so

=====================Backtrace========================

#01 pc 000000000012352b /system/lib64/module/multimedia/libaudio.z.so
#02 pc 00000000001233d3 /system/lib64/module/multimedia/libaudio.z.so
#03 pc 00000000000479eb /system/lib64/platformsdk/libace_napi.z.so
#04 pc 0000000000012cbb /system/lib64/platformsdk/libuv.so
#05 pc 00000000000172bb /system/lib64/platformsdk/libuv.so
#06 pc 0000000000016c03 /system/lib64/platformsdk/libuv.so
#07 pc 000000000001772b /system/lib64/platformsdk/libuv.so
#08 pc 0000000000069047 /system/lib64/platformsdk/libruntime.z.so

更多关于HarmonyOS鸿蒙Next中createAudioCapturer调用{"code":6800301}的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

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

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

demo如下,参考文档:使用AudioCapturer开发音频录制功能-音频录制-Audio Kit(音频服务)-媒体 - 华为HarmonyOS开发者 (huawei.com)

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.');
    }
  });
}

更多关于HarmonyOS鸿蒙Next中createAudioCapturer调用{"code":6800301}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,调用createAudioCapturer时出现错误代码6800301,通常表示音频捕获器初始化失败。具体原因可能包括以下情况:

  1. 权限问题:应用未获取所需的麦克风权限。需要在应用的配置文件中声明并使用ohos.permission.MICROPHONE权限。

  2. 资源不足:系统资源(如内存或音频设备)被占用或不足,导致无法创建音频捕获器。

  3. 参数错误:AudioCapturerInfo参数配置不正确,如采样率、通道数或音频格式不符合设备支持的范围。

  4. 设备不支持:当前设备不支持所请求的音频捕获功能。

  5. 系统限制:系统策略或限制阻止了音频捕获器的创建。

要解决此问题,需检查权限、参数配置,并确保设备支持所需功能。

错误代码6800301表示在调用createAudioCapturer时,音频采集器创建失败。可能的原因包括:

  1. 权限问题:应用未获取ohos.permission.MICROPHONE权限。
  2. 设备不支持:当前设备不支持音频采集功能。
  3. 资源冲突:其他应用正在占用音频资源。
  4. 参数错误AudioCapturerOptions配置不正确。

建议您检查权限配置、设备支持情况以及参数设置,确保所有条件满足后再尝试调用。

回到顶部