Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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
如何在linux/android平台上设置高于44.1kHz的音频采样率?_Android_Alsa_Nexus S_Audiorecord_Sample Rate - Fatal编程技术网

如何在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,它与规格不符,是否有错误报告?