weixin_44173142 2019-08-15 11:58 采纳率: 0%
浏览 250

MeidaPlayer准备的时候报错(Native Method)!!求助求助

先上代码

private MediaPlayer mediaPlayer;

private static final AudioPlayer AUDIO_PLAYER = new AudioPlayer();
private boolean mIsTrackPrepared  = false;


private AudioPlayer(){
    mediaPlayer = new MediaPlayer();
}

public static AudioPlayer getInstance(){
    return AUDIO_PLAYER;
}

public void setMediaPlayerPrepare(String path)throws IOException {
    mIsTrackPrepared  = false;

    if (mediaPlayer != null){
        mediaPlayer.stop();
    }
        mediaPlayer.reset();
        mediaPlayer.setDataSource(path);
        mediaPlayer.prepareAsync();
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                //判断是否准备好
                mIsTrackPrepared  = true;
                //设置进度条最大值
                ViewManager.setMusicSeekBarMax(mp.getDuration());
                //设置时间
                ViewManager.changeMaxTime(TimeUtils.timeUtils(mp.getDuration()));
                Log.d(TAG,mp.getDuration()+"==--==--");
                //mp.start();
            }
        });
}

public void setMediaPlayerStart(){
    if (mIsTrackPrepared == true){
        mediaPlayer.start();
    }
}

我在切换歌曲的时候调用了这两个方法,当我点几十次击切换歌曲时就会报错

图片说明

我在网上找了半天,发现他们说要把mediaPlayer释放release掉,再new一个新的,但我的mediaPlayer是个单例啊!!!!!
求教求教!!!

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-10-07 16:39
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog