android.media.AudioRecord
使い方を間違えると動かないことに気がついたsampleRateInHz
再現する
Samsung Nexus S (by Google) で pcmrecorder を使用して、その問題を簡単に再現することもできます。
https://market.android.com/details?id=com.kohei.android.pcmrecorder
http://ko-yasui.com/home/pcmrecorder/
そのため、ハードウェア オーディオ チップが最大 96KHz をサポートしているにもかかわらず、48Khz での録音に失敗します。
http://www.wolfsonmicro.com/products/audio_hubs/WM8994/
これはデバイス/ファームウェアのバグですか、それとも既知の制限ですか?
Android プラットフォームでは約 44100Hz (24KHz でさえありません) しか保証されないことに注意してください。
http://developer.android.com/reference/android/media/AudioRecord.html
sampleRateInHz
: ヘルツで表されるサンプルレート。44100Hz は現在、すべてのデバイスで動作することが保証されている唯一のレートですが、一部のデバイスでは 22050、16000、および 11025 などの他のレートが動作する可能性があります。
ソースコード
これらの問題を再現するためのサンプル コードは、次の場所にあります。
https://github.com/rzr/rzr-android-test/blob/api-android-media/src/fr/online/rzr/test/
トラック
この制限を克服する方法は?
他の API を使用できますか? opensl、alsa、openal ? そしてどうやって ?
44100Hz以上でサンプリングできるように、ユーザー側からドライバーを再構成できますか? ( .asoundrc )
デバイスを再フラッシュ/ルート化/再起動せずにそのようなことを行うことは可能ですか?
他にこれを回避する方法は?ネイティブ コードを使用して、効率的にアップサンプリング (補間) しますか?