2012-01-10 77 views
6

我有一個具有VideoView是異步準備的視頻活動:MediaPlayer的:所謂的停止狀態4

Uri mUri = "uri to streaming video" 
VideoView mVideoView = (VideoView) rootView.findViewById(R.id.videoView); 
mVideoView.setOnErrorListener(this); 
mVideoView.setOnCompletionListener(this); 
mVideoView.setVideoURI(mUri); 
mVideoView.setMediaController(null); 

mVideoView.setOnPreparedListener(this); 

雖然它是「準備」我表現出ProgressDialog ...如果我按下後退按鈕此狀態期間,以下錯誤打印到亞行和活動與短暫的等待在一個黑色屏幕默默地崩潰了:

E/MediaPlayer(2204): stop called in state 4 
E/MediaPlayer(2204): error (-38, 0) 
W/ActivityManager( 59): Activity pause timeout for HistoryRecord{45080368 com.myapp.VideoPlayerActivity} 

什麼是從準備一個視頻停止VideoView這樣你就可以退出的最好方式活動?

注:我沒有進入實際MediaPlayer對象,直到回調視頻正準備叫:

@Override 
public void onPrepared(MediaPlayer player) 

...這並沒有發生,而在MediaPlayer/VideoView是「準備」。

+0

你解決它之前調用MediaPlayer.prepare()? – frayab 2012-01-26 12:52:04

+0

NPike我患有同樣的問題。你解決了這個問題嗎?那麼如何?請分享知識。 – 2012-04-23 13:55:18

+0

有沒有人找到解決這個問題的方法?我知道線程很老,但我有完全相同的問題。 – nawlrus 2013-09-03 15:52:56

回答

2

我還沒有測試過我的自我,但在準備狀態時應該可以使用reset() MediaPlayer。

+0

在視頻準備好之前無法獲取MediaPlayer參考,因此無法重置媒體播放器 – user3542552 2015-06-09 21:42:27

1

嘗試做MediaPlayer.stop()當按下後退按鈕(執行的onPause或活動的onStop法)

+1

在視頻準備就緒之前無法獲取MediaPlayer參考,因此無法調用MediaPlayer.prepare() – user3542552 2015-06-09 21:42:48