Как уже упоминалось, обновление Android 5.0L (http://geeknizer.com/audio-improvements-in-android-5-0-l-audiophile/), Android начинает поддерживать частоту дискретизации 96000 Гц. Однако, когда я пытаюсь сделать это на моем Galaxy S6:Android 5.0 не способен записывать звук 96000Hz?
void checkAvailableSampleRate(){
for (int rate : new int[] {44100, 48000, 96000}) { // add the rates you wish to check against
int bufferSize = AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize > 0) {
// buffer size is valid, Sample rate supported
Log.d(C.LOG_TAG,"Sample rate "+rate+" is supportted");
// just used for debugging
AudioRecord temp = new AudioRecord(MediaRecorder.AudioSource.MIC, rate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
Log.d(C.LOG_TAG,"make audioRecord successfully ");
}
}
}
Я не могу сделать 96000Hz работу ....
Вот результат я получил:
Sample rate 44100 is supportted
Make audioRecord successfully
Sample rate 48000 is supportted
Make audioRecord successfully
Sample rate 96000 is supportted
Мое приложение сбой здесь, поэтому я могу получить minBuffer, если частота дискретизации установлена на 96000 Гц, но неспособна создать экземпляр AudioRecord.
и вот ошибка:
java.lang.IllegalArgumentException: 96000Hz is not a supported sample rate.
Это странно для меня, что AudioRecord.getMinBufferSize() отлично работает с 96000Hz, но приложение падает, когда я пытаюсь создать 96000Hz AudioRecord.
Кто-нибудь пытался записать звук 96000Hz в Android?
-------------------------------------
Вот обновление моя установка градиента:
android {
compileSdkVersion 21
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "edu.umich.cse.echotag"
minSdkVersion 21
targetSdkVersion 21
ndk {
moduleName "detection"
}
} ....
Скомпилировали ли вы свой код для последней версии API? –
Hi Shotgun Ninja, я использую версию sdk = 21. Я также обновляю настройку градиента в своем вопросе. –