• Android(java)学习笔记123:Android MediaPlayer 播放prepareAsync called in state 8解决办法


    1. 使用android MediaPlayer播放音频文件时,有时会出现prepareasync called in state 8错误

    以下方法可以避免这个异常出现。 

    第1种方法:

    private void playAudio(String audioUri){     
        Uri uri = Uri.parse(audioUri);   
        mMediaPlayer = MediaPlayer.create(getApplicationContext(), uri); 
      try {        //在播放之前先判断playerMusic是否被占用,这样就不会报错了     if (mMediaPlayer != null) {     mMediaPlayer.stop();     }     mMediaPlayer.prepare();     mMediaPlayer.start();     } catch (IllegalStateException e) {     e.printStackTrace();     } catch (IOException e) {     e.printStackTrace(); } }

    第2种方法:

    try {
         if (!isPlaying) {
            isPlaying = true;
            //装载资源
            mediaPlayer = MediaPlayer.create(PlaySDMp3Activity.this, R.raw.trouble);
            isReleased = false;
            mediaPlayer.setLooping(true);
     
            mediaPlayer.start();
            mTextView.setText("当前正在播放音乐!");
         }
      } catch (IllegalStateException e) {
       // TODO Auto-generated catch block
         e.printStackTrace();
      }

    MediaPlayer.create(context,resId)这个方式配置数据源后,就完成了初始化,所以不用prepare可以直接start了,我们要时刻牢记NullPoint Exception,所以这里要加判断:

    !isPlayingmMediaPlayer != null

  • 相关阅读:
    Exp9 Web安全基础
    EXP8 Web基础
    Exp7 网络欺诈防范
    Exp6 信息搜集与漏洞扫描
    Exp5 MSF基础应用
    Exp4 恶意代码分析
    Exp3 免杀原理与实践
    Exp2 后门原理与实践 20154317
    正则表达Regex替换标签
    正则表达式
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4744411.html
Copyright © 2020-2023  润新知