Я разрабатываю свое первое приложение для Android . Это приложение для записи голоса. Я записываю голос с помощью MediaRecord следующим образом:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
}
mRecorder.start();
И у меня есть еще одно действие для воспроизведения этих записанных голосов (.3gpp
файлов). В этом упражнении есть ListView, содержащий мои записанные голоса. Я хочу воспроизводить звук с помощью любого музыкального проигрывателя, установленного на телефоне. Вот мой код: (Источник для этого кода: https://stackoverflow.com/a/3367231/556169)
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File((String) ((TextView) item).getText());
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(intent);
Но я получаю сообщение об ошибке «Музыкальный проигрыватель не может воспроизводить этот тип мультимедиа».
Когда я просматриваю эти аудиофайлы и воспроизводю их через проводник, он работает отлично (это означает, что я успешно записываю голоса). Но когда я использую Intent внутри своего приложения, я получаю сообщение об ошибке.
ДОПОЛНИТЕЛЬНО Я не могу использовать MediaStore.INTENT_ACTION_MUSIC_PLAYER
, потому что он устарел. Я не могу использовать Intent.CATEGORY_APP_MUSIC
, потому что для этого требуется минимальный уровень API 15. Минимальный уровень API моего проекта должен быть 8.