我在我的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上听到任何音频
答案 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等语音通信而调整的麦克风音频源。例如,它将利用回声消除或自动增益控制(如果可用)。”
所以它应该已经使用AcousticEchoCanceler和NoiseSuppressor来摆脱回声和其他令人不安的噪音。但最后,如果你想要未经过滤或过滤的音频,则归结为你的用例。
您还可以尝试提高采样率(var data=db.Database.ExecuteSqlCommand(@"select email from mail");
mail.To.Add(data);
48000应该是最好的,因为这是大多数现代手机的采样率)和位深度(VOICE_COMMUNICATION
到Constants.SAMPLE_RATE
)获得更好的信号。请注意,支持的采样率因手机而异。要了解您的手机支持哪些内容,请调整audio sampling rates discussion的解决方案。有关抽样率的更多信息,请参阅Sampling Audio文档。
对于你经常听不到任何声音的问题,如果你的收益太低(可能发生在ENCODING_PCM_16BIT
)或者你的录音机尚未准备好(我正在接受教育),就会发生这种情况在这里猜,因为我不知道你的代码。)