
我设法使用 native-audio录音机为录音机录制音频.问题出在本机代码中,它只记录单侧语音,传入的语音没有被记录.然后我尝试了语音通信预设配置,它没有录音.以下是预设配置代码.
const SlinterfaceID ID[2] = { SL_IID_ANDROIDSIMPLEBUFFERQUEUE,SL_IID_ANDROIDCONfigURATION};const SLboolean req[2] = { SL_BOolEAN_TRUE,SL_BOolEAN_TRUE};result = (*engineEngine)->CreateAudioRecorder(engineEngine,&recorderObject,&audioSrc,&audioSnk,2,ID,req);SLAndroIDConfigurationItf inputConfig;result = (*recorderObject)->GetInterface(recorderObject,SL_IID_ANDROIDCONfigURATION,&inputConfig);if (SL_RESulT_SUCCESS == result) { SLuint32 presetValue =SL_ANDROID_RECORDING_Preset_VOICE_COMMUNICATION ; (*inputConfig)->SetConfiguration(inputConfig,SL_ANDROID_KEY_RECORDING_Preset,&presetValue,sizeof(SLuint32)); __androID_log_print(ANDROID_LOG_DEBUG,"LOG_TAG","\n Native PCM Conf Success\n");} else{ __androID_log_print(ANDROID_LOG_DEBUG,"\n Native PCM Conf Error %d\n",result);} 添加预设配置后,开始录制语音通话时出现系统错误:
解决方法 检查文档并设置正确的采样率,格式和掩码.通道掩码可以是立体声或单声道.我不确定你是如何获得状态-22错误的,但根据文档,Realize错误非常清楚E/AudioRecord: Could not get audio input for record source 7,sample
rate 16000,format 0x1,channel mask 0x10,session 925,flags 0E/libOpenSLES: androID_audioRecorder_realize(0x559548c350) error
creating AudioRecord object; status -22W/libOpenSLES: Leaving Object::Realize (SL_RESulT_CONTENT_UNSUPPORTED)
SL_RESulT_CONTENT_UNSUPPORTED if a format is not supported (e.g. sample rate too high)
查看NDK示例以阐明您的参数设置
总结以上是内存溢出为你收集整理的android – 如何配置OpenSL来记录语音呼叫全部内容,希望文章能够帮你解决android – 如何配置OpenSL来记录语音呼叫所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)