android 用Mediaplay如何循环播放视频

wqf393439879 2012-09-18 05:15:10
我用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)
...全文
248 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧