Я разрабатываю свое первое приложение для Android . Это приложение для записи голоса. Я запись голоса с MediaRecord как это:Запуск Media Player с использованием намерения
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 lvl 15. Минимальный уровень API моего проекта должен быть равен 8.
Я пробовал это вчера, есть проблемы. На Galaxy Note 2 (Android 4.1.2) я получаю 'No Activity found для обработки Intent {act = android.intent.category.APP_MUSIC dat = file: ///audiorecordtest20130612145343.3gp typ = audio/*}'. И на Galaxy S2 (Android 4.1.2) мой музыкальный проигрыватель запускается, а затем внезапно отключается. – Eray
'' –
Eray
Похоже, что некоторые устройства Samsung неправильно регистрируют свой музыкальный плеер. См. [Здесь] (http://stackoverflow.com/questions/12532207/open-music-player-on-galaxy-s3) для получения дополнительной информации. – free3dom