Android MediaPlayer не воспроизводит mp3 файл

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

public class soundtest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MediaPlayer mp = new MediaPlayer();
        mp.create(getApplicationContext(), R.raw.norm_iphone_money);
        mp.start();
    }
}

Что мне не хватает? У меня есть "norm_iphone_money.mp3" внутри папки res/raw. Файл отлично воспроизводится в проигрывателе Windows Media и iTunes.

Я использую последние версии Java SDK и Eclipse для Java. Приложение предназначено для Android 2.2 и отлично работает в эмуляторе, несмотря на отсутствие звука.

Ответ 1

Проблема заключается в том, что для громкости носителя установлено значение 0 (а не громкость звонка). Вы можете установить его:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

Ответ 2

Попробуйте заменить эти две строки:

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

с этой одной строкой:

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

И посмотрите, работает ли это.

Ответ 3

Статический метод create (Context, int) из типа MediaPlayer должен быть доступен статическим способом. Попробуйте следующее:

MediaPlayer.create(getApplicationContext(), R.raw.norm_iphone_money).start();

Он также будет воспроизводить .mp3 с этой строкой

mp.create(getApplicationContext(), R.raw.norm_iphone_money).start();

Ответ 4

Я бы предложил следующее:

MediaPlayer mp = new MediaPlayer();
//bla bla bla
mp = MediaPlayer.create(getApplicationContext(), R.raw.norm_iphone_money);

Ответ 5

Была та же проблема после того, как я нажал, чтобы запустить Media Player, экран потемнел, и приложение остановилось.

Я просто изменил

MediaPlayer mp = MediaPLayer.create(это, R.raw.sound); mp.start();

к

MediaPlayer mp = MediaPLayer.create(это, R.raw.sound).start();

Я не совсем уверен, в чем разница, но она решила мою проблему.