Audio Record を使用してマイク入力を取得する Android 用のゲームを開発しました。
https://play.google.com/store/apps/details?id=fixappmedia.microをご覧ください。
問題は、電話で利用可能なサンプルレートを取得するために次の関数を使用していることです。
public int getValidSampleRates() {
int r=8000;
for (int rate : new int[] {8000,11025,16000,22050,44100}) { // add the rates you wish to check against
int bufferSize = AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize > 0) {
r= rate;
}
}
return r;
}
最初に自分の電話 (Samsung Galaxy Vibrant) でテストしたところ、かなりうまく機能しました... しかし、今日、Samsung Galaxy Ace でテストしたところ、サンプルレートが機能しませんでした...
理由についてのアイデアはありますか?