2017-02-23 25 views
0

Я пытаюсь загрузить/воспроизвести звук (I have file /res/raw/fx2.wav) с кодом:Android медиаплеер статусной ошибки = 0x1, хотите играть звук

MediaPlayer mp = MediaPlayer.create(this, R.raw.fx2); 

или

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.fx2); 

И я получаю эту ошибку:

java.io.IOException: Prepare failed.: status=0x1

Я искал эту ошибку, но ни один из ответов не имел рабочего кода. Такие примеры также имели:

MediaPlayer mediaPlayer = new MediaPlayer(); 

, а потом что-то с: FileInputStream or mp.setDataSrouce

Я экспериментировал с этим, но у меня нет ничего работает до сих пор, и я не знаю, какой метод лучше для меня или в в каких ситуациях их следует использовать? Я просто хочу загрузить и воспроизвести звук.

Возможно, я просто не получаю контекст должным образом. Или что-то не так с моим звуковым файлом (но это обычный малый путь, поэтому я думаю, что это не так).

Любые идеи?

ответ

0

У вас должно быть разрешение на чтение файлов из внешней памяти в файле AndroidManifest.xml.

<manifest ...> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
... 
</manifest> 

Вы должны также попытаться изменить путь к файлу, используя следующий код (изменить com.example.myapp на ваше имя пакета):

MediaPlayer mp = new MediaPlayer(); 
Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.fx2); 
mp.setDataSourceUri(this, uri); 

См this answer подробности.

0

Это работает для меня:

MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.beep); 
mediaPlayer.start(); 

Убедитесь, что вы импортируете:

import android.media.MediaPlayer; 
Смежные вопросы