android 用Mediaplay如何循环播放视频

wqf393439879 wqf393439879 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用mediaplay可以播放视频,但是循环播放就不可以了,我用一个setOnCompletionListener来设置循环播放,可是会出错,求指导!!(代码如下)
surfaceView = (SurfaceView) findViewById(R.id.video);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
media = new MediaPlayer();

surfaceHolder.addCallback(new Callback()
{

@Override
public void surfaceDestroyed(SurfaceHolder holder)
{
// TODO Auto-generated method stub

}

@Override
public void surfaceCreated(SurfaceHolder holder)
{
// TODO Auto-generated method stub

media.setAudioStreamType(AudioManager.STREAM_MUSIC);
media.setDisplay(surfaceHolder);

try
{
media.setDataSource("/sdcard/video.3gp");
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

try
{
media.prepare();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

media.start();
media.setLooping(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
// TODO Auto-generated method stub

}
});
media.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
// 播放结束后的动作

media.reset();
try
{
media.prepare();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
media.start();
}
});
运行后出现了以下错误
09-18 10:18:31.529: E/MediaPlayer(6855): prepareAsync called in state 16
09-18 10:18:31.539: W/System.err(6855): java.lang.IllegalStateException
09-18 10:18:31.539: W/System.err(6855): at android.media.MediaPlayer.prepare(Native Method)
09-18 10:18:31.539: W/System.err(6855): at com.wqf.cslr.Main$8.onCompletion(Main.java:230)
09-18 10:18:31.539: W/System.err(6855): at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1556)
09-18 10:18:31.539: W/System.err(6855): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 10:18:31.539: W/System.err(6855): at android.os.Looper.loop(Looper.java:137)
09-18 10:18:31.539: W/System.err(6855): at android.app.ActivityThread.main(ActivityThread.java:4424)
09-18 10:18:31.539: W/System.err(6855): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 10:18:31.539: W/System.err(6855): at java.lang.reflect.Method.invoke(Method.java:511)
09-18 10:18:31.539: W/System.err(6855): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-18 10:18:31.549: W/System.err(6855): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-18 10:18:31.549: W/System.err(6855): at dalvik.system.NativeStart.main(Native Method)
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
wqf393439879
Android 80,489 成员 91,375 内容