电话的最佳音频源设置是什么?

时间:2017-11-17 21:30:55

标签: android android-mediaplayer android-mediarecorder android-audiomanager android-audiorecord

我在我的Messenger调用app中使用以下代码:

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

这是电话中音频的最佳设置吗?我对回声有几个问题。我尝试了AudioSource.MIC和VOICE_COMMUNICATION,但它们表现更差。我想知道改变任何其他变量是否会改善音频质量?关于调用app的最佳变量的任何想法。另外,我没有经常在Nexus 6或像素2上听到任何音频

1 个答案:

答案 0 :(得分:2)

Android上的音频始终是一个棘手的问题,因为制造商在所有手机中使用不同功能的不同音频芯片。

据说type 'a mylist = 'a listcell ref and 'a listcell = Nil | Cons of 'a * ('a mylist) let l1 = (ref (Cons (1, ref (Cons (2,ref Nil))))) let l2 = (ref (Cons(3, ref (Cons(4, ref Nil))))) let rec append l1 l2 = match l1 with | {contents = Nil} -> (l1 := !l2; l1) | {contents = Cons(h,t)} -> append t l2 应该是你最好的选择。它是“为VoIP等语音通信而调整的麦克风音频源。例如,它将利用回声消除或自动增益控制(如果可用)。”

所以它应该已经使用AcousticEchoCancelerNoiseSuppressor来摆脱回声和其他令人不安的噪音。但最后,如果你想要未经过滤或过滤的音频,则归结为你的用例。

您还可以尝试提高采样率(var data=db.Database.ExecuteSqlCommand(@"select email from mail"); mail.To.Add(data); 48000应该是最好的,因为这是大多数现代手机的采样率)和位深度(VOICE_COMMUNICATIONConstants.SAMPLE_RATE)获得更好的信号。请注意,支持的采样率因手机而异。要了解您的手机支持哪些内容,请调整audio sampling rates discussion的解决方案。有关抽样率的更多信息,请参阅Sampling Audio文档。

对于你经常听不到任何声音的问题,如果你的收益太低(可能发生在ENCODING_PCM_16BIT)或者你的录音机尚未准备好(我正在接受教育),就会发生这种情况在这里猜,因为我不知道你的代码。)