Android MediaPlayer не воспроизводит mp3 файл - PullRequest
11 голосов
/ 12 февраля 2011

Я написал самое простое приложение, которое я могу придумать, чтобы попытаться воспроизвести 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 Player и iTunes.

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

Ответы [ 6 ]

39 голосов
/ 11 августа 2012

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

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

Взгляните на страницу разработчика и другой вопрос для объяснения параметров для setStreamVolume (int, int, int).

10 голосов
/ 12 февраля 2011

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

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

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

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

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

0 голосов
/ 26 августа 2018

Проблема с эмулятором, смените эмулятор или попробуйте запустить приложение на реальном устройстве. Это должно решить проблему.

0 голосов
/ 27 марта 2014

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

Я только что изменился

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

до

MediaPlayer mp = MediaPLayer.create (this, R.raw.sound) .start ();

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

0 голосов
/ 21 мая 2013

Я бы предложил это:

MediaPlayer mp = new MediaPlayer();
//bla bla bla
mp = MediaPlayer.create(getApplicationContext(), R.raw.norm_iphone_money);
0 голосов
/ 12 февраля 2011

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

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

.mp3 будет воспроизводиться и с этой строкой

...