HarmonyOS鸿蒙Next中OH_Audio录音不成功,播放成功
HarmonyOS鸿蒙Next中OH_Audio录音不成功,播放成功 我们当前需要采集和播放8k 16位单声道的声音,根据文档播放成功了,但录音不成功。
OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_CAPTURER);
OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer);
// 设置音频采样率
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, AUDIOSTREAM_SOURCE_TYPE_MIC);
// 配置回调函数
callbacks.OH_AudioCapturer_OnReadData = MyOnRecordReadData;
callbacks.OH_AudioCapturer_OnStreamEvent = MyOnRecordStreamEvent;
callbacks.OH_AudioCapturer_OnInterruptEvent = MyOnRecordInterruptEvent;
callbacks.OH_AudioCapturer_OnError = MyOnRecordError;
// 设置音频输入流的回调
OH_AudioStreamBuilder_SetCapturerCallback(builder, callbacks, this);
没有走到MyOnRecordReadData方法内。
日志如附件文件2
如果把 OH_AudioStreamBuilder_GenerateCapturer(builder, &audioCapturer); 放在 OH_AudioCapturer_Start(audioCapturer); 之前,日志如文件3:
[nodict][fast_audio_stream.cpp] [SetAudioStreamInfo]FastAudioStreamInfo, Sampling rate: 8000, channels: 1, format: 1, stream type: 1
[nodict][fast_audio_stream.cpp] [SetAudioStreamInfo]Stream is not supported.
这意思 是不支持8k 16位单声道吗?
更多关于HarmonyOS鸿蒙Next中OH_Audio录音不成功,播放成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中OH_Audio录音不成功,播放成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
报错日志中:SetCapturerSource is not supported,可能是没有获取麦克风权限导致的。
可以参考录音播放的demo: https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/Audio

