"
android MediaPlayer 播放音频文件的时候,有时会出现只播放了一部分就停止了,这是什么原因啊?
下面是播放方法,水平不高,写的不太好,各位见谅。
 /**
    * 播放的方法
    * @param path
    */
   public synchronized void play(final String path)
   {
 
 
     try
     {
 
 
       if (mediaPlayer == null)
       {
         mediaPlayer = new MediaPlayer();
       }
  
       mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
       mediaPlayer.setDataSource(path);
       mediaPlayer.prepare();
       mediaPlayer.start();
       mediaPlayer.setVolume(0.5f, 0.5f);
       // 设为播放状态
       // isPlaying = true;
 
 
       //更改按钮的北京颜色
       tv.setBackgroundColor(Application.get().getResources().getColor(R.color.main_title));
       // tv.setText("播放中...");
 
 
       // 播放完毕之后的回掉函数
       mediaPlayer.setOnCompletionListener(new OnCompletionListener()
       {
         @Override
         public void onCompletion(MediaPlayer arg0)
         {
           // 这里在调用play()可以实现单曲循环
           // isPlaying = false;
 
 
           mediaPlayer.release();
           mediaPlayer = null;
 
 
           ContextConstant.voideInfoView = null;
           ContextConstant.player = null;
 
 
           tv.setBackgroundColor(Application.get().getResources().getColor(R.color.voice_state_normal_bg));
 
 
           ContextConstant.PLAYER_ORDERID = null;
 
 
           if (ContextConstant.VIV != null)
           {
             ContextConstant.VIV.setVoicePlayingBg();
           }
 
 
           ContextConstant.VIV = null;
 
 
           ToolVoiceList.autoPlay();
 
 
         }
       });
 
 
       mediaPlayer.setOnErrorListener(new OnErrorListener()
       {
 
 
         @Override
         public boolean onError(MediaPlayer mp, int what, int extra)
         {
           isPlaying = false;
           ToolShow.showShort("播放错误:错误类型:" + what + "错误码:" + extra);
 
 
           tv.setBackgroundColor(Application.get().getResources().getColor(R.color.voice_state_normal_bg));
           // tv.setText("播放语音");
 
 
           return false;
         }
       });
 
 
     } catch (Exception e)
     {
       e.printStackTrace();
     }
 
 
   }
 
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
"
异常信息呢,
而且Android自带的播放器功能有限,有些格式不标准,所以会出现这种情况
######回复 @九离天 : 好的,谢谢您了######回复 @海洋清风 : 1 Android自带的还有Audio Track ;2 极端点你可以自己编译ffmpeg或者libav;3 省事点你可以用 vitamio,ijk,Exo,vlc 等等现成的开源项目,不过这些项目不只有音频播放。 异常信息可能不在你的App那个log显示,在所有的那个logcat里。######这个没有报异常,就是有时候会出现这样的情况,请问如果不用MediaPlayer,那我应该用什么呢?"