2014-10-14 5 views
1

Я пытаюсь играть звук будильника ровно один раз:Воспроизведение звука только один раз

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 

    final MediaPlayer mMediaPlayer = new MediaPlayer(); 
    mMediaPlayer.setDataSource(ctx, notification); 
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); 
    mMediaPlayer.prepare(); 
    mMediaPlayer.setLooping(false); 

    mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     public void onPrepared(MediaPlayer arg0) { 
      mMediaPlayer.seekTo(0); 
      mMediaPlayer.start(); 
     } 
    }); 

Но звук воспроизводится бесконечно, хотя «setLooping» установлен в ложь. Что еще я могу сделать, чтобы звук не был петлей?

ответ

2

Вызов:

mMediaPlayer.prepare(); 

ли блокировка вызовов для файлов, так что вы действительно не нужен слушатель, вы можете просто позвонить:

mMediaPlayer.start(); 

Сразу после этого. И начать с момента времени 0, так что вам не нужно:

mMediaPlayer.seekTo(0); 

Как бесконечной игры, вы можете найти объяснение и решение здесь:

android mediaplayer loops forever on ICS

Смежные вопросы