HarmonyOS 创建输入音频流失败?

参考代码:

ALOGI("初始化音频AudioCapture");
OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_CAPTURER);
// 设置音频采样率
OH_AudioStreamBuilder_SetSamplingRate(builder, 8000);
// 设置音频声道
OH_AudioStreamBuilder_SetChannelCount(builder, 1);
// 设置音频采样格式
OH_AudioStreamBuilder_SetSampleFormat(builder, AUDIOSTREAM_SAMPLE_S16LE);
// 设置音频流的编码类型
OH_AudioStreamBuilder_SetEncodingType(builder, AUDIOSTREAM_ENCODING_TYPE_RAW);
// 设置输出音频流的工作场景
OH_AudioStreamBuilder_SetCapturerInfo(builder, OH_AudioStream_SourceType::AUDIOSTREAM_SOURCE_TYPE_MIC);
OH_AudioCapturer_Callbacks callbacks;
// 配置回调函数
callbacks.OH_AudioCapturer_OnReadData = OnReadData; // OnReadAudioData;
callbacks.OH_AudioCapturer_OnStreamEvent = OnStreamEvent;
callbacks.OH_AudioCapturer_OnInterruptEvent = OnInterruptEvent;
callbacks.OH_AudioCapturer_OnError = OnError;

// 设置输出音频流的回调
OH_AudioStream_Result result = OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, nullptr);
ALOGI("OH_AudioStreamBuilder_SetCapturerCallback result:%d", result);
//此处返回了1(AUDIOSTREAM_ERROR_INVALID_PARAM),下面audioCapture是nullptr
result = OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
ALOGI("OH_AudioStreamBuilder_GenerateCapturer result:%d", result);
ALOGE("OH_AudioStreamBuilder_GenerateCapturer:%p",audioCapturer);
// 启动抓取麦克风音频数据
result = OH_AudioCapturer_Start(audioCapturer);
ALOGI("OH_AudioCapturer_Start result:%d", result);
阅读 488
1 个回答

权限问题,需要打开MICROPHONE权限,audioCapturer才能创建成功。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进