我遇到了一個我正在處理的視頻流應用程序的奇怪問題。視頻/音頻的實際流式傳輸在我的所有測試設備上運行良好。然而,在看似任何4.0+設備上,使用RTSP URL時,prepare()會立即返回(這會導致在視頻加載時干擾我所使用的其他幾個系統時向用戶提供正確反饋的問題)。Android 4.0.4 MediaPlayer使用RTSP網址準備問題
下面的代碼,我初始化和設置我的MediaPlayer塊,但要保持幾件事情:
- 我initPlayer方法是從一個叫的AsyncTask。
- 該視頻最終播放正確,但準備立即返回會在視頻加載過程中導致用戶缺乏反饋。在整個過程中發生
- start()方法是通過onPrepared方法在我OnPreparedListener,這顯然成爲準備時(一個問題,叫上的MediaPlayer)返回
- 任何種類的錯誤,然後它實際上是準備打。
- HTTP流似乎正常工作,並且在低於4.0的每個測試設備上不會發生問題。
我一直在試圖解決這個問題的時間很長,而且一直沒有找到遇到這個問題的其他人。任何想法將不勝感激。
public void initPlayer() {
//We first need to make sure the MediaPlayer isn't null
if(mMediaPlayer==null){
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnPreparedListener(mediaPlayerPreparedListener);
mMediaPlayer.setOnCompletionListener(mediaPlayerCompletionListener);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
//If a video/stream has been chosen while another is already playing
else if(mMediaPlayer.isPlaying()){
mMediaPlayer.reset();
}
//Video is not in full screen mode
second = false;
try {
mMediaPlayer.setDataSource(videoString);
holder = mPreview.getHolder();
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//onPreparedListener
private OnPreparedListener mediaPlayerPreparedListener = new OnPreparedListener(){
public void onPrepared(MediaPlayer mp) {
mp.start();
vidPb.setVisibility(View.INVISIBLE);
}
};
我面臨同樣的問題現在。你解決了這個問題嗎?如果是,請回答你自己的問題與解決方案。等候...!!! –
任何解決方案??? –
不幸的是,我從來沒有找到解決方案,儘管我不久前就停止了這個項目的工作。 – bread