Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 呼叫的最佳音频源设置是什么?_Android_Android Mediaplayer_Android Mediarecorder_Android Audiomanager_Android Audiorecord - Fatal编程技术网

Android 呼叫的最佳音频源设置是什么?

Android 呼叫的最佳音频源设置是什么?,android,android-mediaplayer,android-mediarecorder,android-audiomanager,android-audiorecord,Android,Android Mediaplayer,Android Mediarecorder,Android Audiomanager,Android Audiorecord,我正在messenger呼叫应用程序中使用以下代码: this.audioRecord = new AudioRecord( MediaRecorder.AudioSource.DEFAULT, Constants.SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,

我正在messenger呼叫应用程序中使用以下代码:

this.audioRecord = new AudioRecord(
                MediaRecorder.AudioSource.DEFAULT,
                Constants.SAMPLE_RATE,
                AudioFormat.CHANNEL_IN_MONO,
                AudioFormat.ENCODING_PCM_16BIT,
                Constants.BUFFER_SIZE_RECORDING);

这是音频输入通话的最佳设置吗?我对echos有几个问题。我试过AudioSource.MIC和VOICE_通信,但它们的性能更差。我想知道更改任何其他变量是否会提高音频质量?关于呼叫应用程序的最佳变量的任何想法。此外,我在Nexus 6或pixel 2上听不到任何音频,Android上的音频始终是一个难题,因为制造商在所有手机上都安装了具有不同功能的不同音频芯片

也就是说,语音通信应该是你最好的选择。它是“为语音通信(如VoIP)调谐的麦克风音频源。例如,它将利用回声消除或自动增益控制(如果可用)。”

因此,它应该已经使用并消除回声和其他干扰噪声。但最终,如果您更想要未过滤或过滤的音频,这取决于您的用例

您还可以尝试增加采样率(
常数。采样率
48000应该是最好的,因为这是大多数现代手机的采样率)和位深度(
ENCODING\u PCM\u 16BIT
to
ENCODING\u FLOAT
),以获得更好的信号。请注意,支持的采样率因电话而异。要了解您的手机支持哪些功能,请从中调整解决方案。有关采样率的更多信息,请参见文档


对于你经常听不到任何声音的问题,如果你的增益太低(可能发生在
AudioSource.MIC上)或者你的录音机还没有准备好(我在这里做一个有根据的猜测,因为我不知道你的代码)。

非常感谢!非常详细。我支持18+版本,似乎编码只适用于21和+版本。对单声道中的AudioFormat.CHANNEL\u有任何评论,"? 以及增加缓冲区大小录制?如果您使用立体声中的
频道
,根据您的设备,一个频道将是电话麦克风,另一个频道将是摄像机麦克风。缓冲区大小控制在处理音频之前缓冲多少音频。因此,增加它会增加延迟,但也会提高针对缓冲区溢出的稳定性,通常您希望设定一个较低的值,如果过低,
AudioRecord
会发出抱怨。我只使用安卓手机,这是一个呼叫应用程序。没有平板电脑或任何东西,只有nexus、三星和像素设备。您认为从18+版到26+版的摄像机麦克风==用于视频捕获的麦克风的理想设置是什么。我认为你的设置很好,如果你想为每部手机提供理想的音频质量,你必须为它们创建单独的设置。另一种解决方案是使用并让系统处理所有事情。如果您想要一个理想的解决方案,关于延迟,您必须在音频后端有一个本机实现(如SIP调用)。和