haha1 2016-12-05 07:05 采纳率: 4.5%
浏览 2346

关于MediaPlayer+SurfaceView播放本地视频

如下代码报错prepareAsync called in state 1
java.lang.IllegalStateException
at android.media.MediaPlayer._prepare(Native Method)
at android.media.MediaPlayer.prepare(MediaPlayer.java:1184)
at sangfei.android.com.audiotestapk.VideoMainActivity.startPlayFirstVideo(VideoMainActivity.java:165)
at sangfei.android.com.audiotestapk.VideoMainActivity.initFirstPlayer(VideoMainActivity.java:159)
at sangfei.android.com.audiotestapk.VideoMainActivity.surfaceCreated(VideoMainActivity.java:129)

`` @Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
// TODO 自动生成的方法存根

}

@Override
public void surfaceCreated(SurfaceHolder arg0) {
    //surfaceView创建完毕后,首先获取该直播间所有视频分段的url

// getVideoUrls();
//然后初始化播放手段视频的player对象
initFirstPlayer();
}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    // TODO 自动生成的方法存根

}

/*
 * 初始化播放首段视频的player
 */
private void initFirstPlayer() {
    firstPlayer = new MediaPlayer();
    firstPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    firstPlayer.setDisplay(surfaceHolder);

    firstPlayer
            .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    onVideoPlayCompleted(mp);
                }
            });
    //设置cachePlayer为该player对象
    cachePlayer = firstPlayer;
    initNexttPlayer();
    //player对象初始化完成后,开启播放
    startPlayFirstVideo();
}

private void startPlayFirstVideo() {
    try {
        firstPlayer.setDataSource(String.valueOf(getList().get(currentVideoIndex)));
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        firstPlayer.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
    firstPlayer.start();


}`


  • 写回答

1条回答

  • 徐福记456 2016-12-05 07:54
    关注

    是因为调用mediaPlayer.prepare()时,mediaPlayer为null导致的。建议你参考下:

    评论

报告相同问题?

悬赏问题

  • ¥15 Error in check.length("fill") : 'gpar'成分'fill'的长度不能为零
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导