2015-02-11 63 views
1

我有這段代碼在我的應用程序的Android - MediaPlayer的繼續下去

mp.start(); 

    play=mp.isPlaying(); 

    while(play) 
    { 
     play=mp.isPlaying(); 
    } 

    mp.stop(); 
    mp.release(); 

當我調試(我用的是真正的Android設備)日誌窗口一直說像「V /媒體播放器: isPlaying:1「。當我關閉應用程序時,它也打印這個字符串。我確信我的應用程序在文件播放後從循環中退出,因爲它在該部分之後執行所有指令。我也嘗試使用OnCompletionListener,但它不像它應該做的那樣工作。

我在AsyncTask中執行此代碼,可能是這個問題?

+0

Activity.ondestroy - 獲得mediaplay thread n stop play,reset – 2015-02-11 10:00:01

回答

0

也就是說while循環是可怕的,你不需要它,只是用MediaPlayer的回調或者創建擁有

link of android mediaPlayer official documentation

接下來,你不能調用。開始(),然後停止()只之後..也許這是一個測試,但它可能是一個問題,如果它是現場代碼。

OnCompletionListener給你一個回調僅在播放曲目

的結尾跟蹤您的播放器的狀態,你可以使用一個枚舉和接口,使自己的回調

+0

我知道這很可怕,但我需要等待執行結束,然後我必須通過套接字發送消息。 OnCompletionListener不按預期工作。稍後我會再試一次,讓你知道! – bjorn 2015-02-11 09:32:31