2014-02-23 92 views
4

在我的應用程序中,我使用VideoView來流式傳輸視頻文件,並使用MediaPlayer.setLooping(true)製作VideoView循環視頻。VideoView不會在Galaxy S4上循環播放視頻

下面是一些代碼 -

videoView.setVideoPath(url); 
videoView.setOnPreparedListener(new OnPreparedListener() { 

@Override 
public void onPrepared(MediaPlayer mp) { 
    if (shouldLoopVideo) { 
     mp.setLooping(true); 
    } 

    videoView.start(); 
} 
}); 

此代碼是可以正常使用的所有設備,但銀河S4的Android 4.2.2我在許多設備上進行測試,並且許多Android版本,但只有那些失敗是星系s4。

設備將播放一次視頻,並停止(在調用onCompletion監聽器之後)。

+1

看到這個鏈接http://developer.samsung.com/forum/board/thread/view.do?boardName=General&messageId=249871&listLines=15&startId=zzzzz~ –

回答

0

我有同樣的問題。適用於其他設備,但不適用於Galaxy S4。

是否有這種問題的一些已知的解決方案。

我目前的解決方法是調用onCompletion()中的setVideoPath(),它不適合我。

1

這是Android 4.4.2的一個bug。 我的解決方法:

private String mVideoPath; 
private VideoView mVideoView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mVideoPath = "android.resource://" + getActivity().getPackageName() + "/" + R.raw.backvideo; 
} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 


    mVideoView = (VideoView) view.findViewById(R.id.videoBackground); 
    mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
    mVideoView.setKeepScreenOn(true); 


    mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
      mVideoView.start(); 
     } 
    }); 

    mVideoView.start(); 
} 


@Override 
public void onPause() { 
    super.onPause(); 
    mVideoView.pause(); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mVideoView.setVideoURI(Uri.parse(mVideoPath)); 
    mVideoView.start(); 
}