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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器