如何在linux/android平台上设置高于44.1kHz的音频采样率?
我注意到,如何在linux/android平台上设置高于44.1kHz的音频采样率?,android,alsa,nexus-s,audiorecord,sample-rate,Android,Alsa,Nexus S,Audiorecord,Sample Rate,我注意到,android.media.AudioRecord无法工作 使用错误的sampleRateInHz 复制 您还可以轻松复制该问题 在三星Nexus S上使用pcmrecorder(由Google提供): 因此,当硬件音频芯片支持高达96KHz时,无法在48Khz下录制: 这是设备/固件错误还是已知限制 请注意,android平台仅确保44100Hz(甚至不是24KHz) sampleRateInHz:以赫兹表示的采样率。44100Hz是目前唯一的频率 这保证在所有设备上都有效,
android.media.AudioRecord
无法工作
使用错误的sampleRateInHz
复制
您还可以轻松复制该问题
在三星Nexus S上使用pcmrecorder(由Google提供):
因此,当硬件音频芯片支持高达96KHz时,无法在48Khz下录制:
这是设备/固件错误还是已知限制
请注意,android平台仅确保44100Hz(甚至不是24KHz)
sampleRateInHz
:以赫兹表示的采样率。44100Hz是目前唯一的频率
这保证在所有设备上都有效,但其他速率(如22050、16000和11025)可能在某些设备上有效
源代码
您将在以下位置找到重现这些问题的示例代码:
轨道
如何克服这一限制
- 是否可以使用其他API?opensl、alsa、openal?怎么做
- 是否可以从用户端重新配置alsa驱动程序 能够在44100Hz以上进行采样?(.asoundrc)
- 有可能做这样的事吗 无需重新灰化/根化/重新启动设备
- 否则如何解决这个问题? 使用本机代码高效地进行上采样(插值)
nexus s支持的最大采样率为44.1 kHz,当Android平台请求将采样率设置为48或更高时,音频硬件抛出错误。为了回答您的问题,采样率的限制由您运行程序的特定硬件决定。我在我的nexus s上尝试了你的代码,得到了与你相同的结果,但如果我在我的旧mytouch 3g上尝试,最大采样率可能是22.05 kHz。基本上,在初始化音频配置时,您需要检查支持的采样率范围。谢谢您的评论,我感到很孤独。。。我想我必须深入研究操作系统的源代码,找出这个限制是硬编码的,因为硬件有更高的功能。。。关于mytouch 3,它与规格不符,是否有错误报告?