2012-01-23 2 views
3

Я написал две оболочки класса для android.media.mediaplayer.Android MediaPlayer.stop() приостанавливается, а не останавливается

Если я использую объект с фабрики MediaPlayer.Create(). то объект медиаплеера останавливает песню, когда вызывается метод stop (это значит, остановить песню, поэтому, когда я вызываю play(), она начинается с начала песни). Но если я использую конструктор по умолчанию, stop() ведет себя точно так же, как pause(), сохраняя предыдущую позицию в песне (за исключением того, что она действительно находится в состоянии остановки).

Мне пришлось использовать seekTo (0) после prepare() и stop(), чтобы делать то, что я хочу, но это не то, что говорит документация.

общественного недействительными старт() С: уровень API 1

Запуск или возобновление воспроизведения. Если воспроизведение ранее было приостановлено, воспроизведение продолжится с того места, где оно было приостановлено. Если воспроизведение было остановлено или никогда не начиналось раньше, воспроизведение начнется с начала .

Итак, если я позвоню start(), когда он остановлен, он должен начинаться с самого начала.

Это код из метода stopSong из моего класса:

public void stopSong() { 
    if(mpPrepared){ 
     mp.stop(); 
     try { 
      mp.prepare(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     mp.seekTo(0); 
    } 
} 

Может кто-нибудь сказать мне, почему это происходит? Благодаря!

ответ

0
if(mp.isPlaying){ 

    try { 
    mp.stop(); 
    mp.prepare();  
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }} 

надеюсь, что это поможет

+0

я тестировал, но все еще только делает паузу. Я не вижу, как изменение условия изменит поведение stop(). Спасибо, в любом случае. –

+0

Могу ли я увидеть весь код? – Intathep

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