android – VideoView不仅仅在Galaxy s4上循环播放视频

在我的应用程序中,我使用VideoView来传输视频文件,然后使用MediaPlayer.setLooping(true)制作VideoView循环视频.

这是一些代码

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

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

    videoView.start();
}
 });

这段代码适用于所有设备,但galaxy s4 android 4.2.2我在很多设备和许多Android版本上测试过,但唯一失败的是galaxy s4.

设备将播放视频一次,并停止(调用onCompletion侦听器后).

解决方法:

这是Android 4.4.2的错误.
我的解决方法

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();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...