我目前正在使用 Xamarin 编写 Android 应用程序,并且正在使用 AudioRecord 类来录制我的音频。
audioRecord = new AudioRecord (
// Hardware source of recording.
AudioSource.Mic,
// Frequency
11025,
// Mono or stereo
ChannelIn.Mono,
// Audio encoding
Android.Media.Encoding.Pcm16bit,
// Length of the audio clip.
audioBuffer.Length
);
但是在选择音频编码时,Android.Media.Encoding
只有 4 个选项
Android.Media.Encoding.Default
Android.Media.Encoding.Invalid
Android.Media.Encoding.Pcm8bit
Android.Media.Encoding.Pcm16bit
MediaRecorder
似乎有更多选择,但没有 GSM 选项。
所以这是我的问题:
1)除了默认情况下似乎都不允许GSM之外AudioRecord
,还有人知道android的另一个录制选项吗?MediaRecorder
也许Android.Net.Rtp
API 中有一些东西,因为它已经有一个 GSM 编解码器?
2)或者有没有人知道一种方法来编码/解码音频到/从 GSM 使用任何当前的音频格式 android 让你录制到/播放?
备选方案:我也可以将 GSM 更改为类似大小和质量的另一种格式,以大约 2 KB/s 的速率获得清晰的语音传输。但是,这将需要我更改使用 NAudio 的 WinForms 桌面应用程序。因此,如果有一个好的解决方案,欢迎在这里提出建议,但是最好找到我的其他两个问题之一的解决方案。