如何解决Android AudioRecord 无法从另一个使用它的应用程序中取回麦克风,并且会发生错误
我使用 AudioRecord 在 Android 中制作了一个有效的录音前台服务。
问题是麦克风共享:由于我的应用程序在录音处于活动状态时不需要任何可见的 UI,因此当另一个应用程序请求麦克风时(例如语音通话或录制视频),麦克风的使用会移交给该应用程序,这很好。
但是,当该应用程序使用麦克风完成后,我的应用程序无法取回麦克风,而且我不断收到错误消息。
这些是我得到的错误:
E/Iaudioflinger: createRecord returned error -1
E/AudioRecord: createRecord_l(169): audioflinger Could not create record track,status: -1
换句话说,一旦另一个应用程序开始使用麦克风,我就会收到上述错误,但是当另一个应用程序使用它时,我仍然遇到相同的错误,因此我无法再录音。
这是记录音频的部分代码。
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUdio_ENCODING,BufferElements2Rec * BytesPerElement);
recorder.startRecording();
//Then in a thread I perform the following read. THIS IS THE LINE THAT CAUSES THE ERROR
recorder.read(sData,BufferElements2Rec);
我一直在使用 Android 11 API 30 进行测试。
我阅读了关于共享麦克风输入的 https://developer.android.com/guide/topics/media/sharing-audio-input,但它指出当另一个应用程序正在使用麦克风时,我的应用程序应该静音,而不是错误。
我该怎么做才能解决这个问题?
提前致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。