У меня проблема со звуком на андроиде.
Короткий вопрос:
Мне нужно воспроизводить и записывать аудио в формате aac на всех устройствах Android. Я обнаружил, что возможно запуск с API 10, но на моем устройстве BLU (2.3.5) он работает с использованием MediaRecorder
и MediaPlayer
. Но на HTC Nexus One это не работает. Есть ли у вас какие-либо предложения?
Длинный вопрос:
Для записи и воспроизведения звука в формате AAC я использую следующий код. Это довольно просто и глупо, но работает для тестирования.
String pathForAppFiles = getFilesDir()
.getAbsolutePath();
pathForAppFiles += "/bla.mp4";
if (audioRecorder == null) {
File file = new File(pathForAppFiles);
if (file.exists())
file.delete();
audioRecorder = new MediaRecorder();
audioRecorder
.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder
.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
audioRecorder
.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
audioRecorder.setOutputFile(pathForAppFiles);
try {
audioRecorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
audioRecorder.start();
} else {
audioRecorder.stop();
audioRecorder.release();
audioRecorder = null;
new AudioUtils().playSound(pathForAppFiles);
}
new AudioUtils().playSound(pathForAppFiles);
- создает MediaPlayer и воспроизводит звук из файла;
Чтобы заставить его работать на нексусе, я попробовал aac-decoder - он не воспроизводит файл до конца (играет только 6 секунд из 10 секунд файла). И он не воспроизводит звук, записанный кодом выше.
Также я пытался установить FFmpeg, но у меня нет опыта работы с этой библиотекой.
Так что можете порекомендовать что-нибудь?