MediaPlayer设置StreamType需要在prepare之前

来源:互联网 发布:大数据技术具体应用 编辑:程序博客网 时间:2024/03/29 02:33
先看一段源码。 
[java] view plaincopy
  1.  public static MediaPlayer create(Context context, int resid) {  
  2.   
  3. AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid);  
  4.  if (afd == nullreturn null;  
  5.   
  6.   MediaPlayer mp = new MediaPlayer();  
  7.   mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());  
  8.   afd.close();  
  9.   mp.prepare();  
  10.  return mp;  
  11.   
  12. 。。。。。  
  13. MediaPlayer mp = MediaPlayer.create(context, R.raw..)  
  14. mMediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); //无效  
  15. mAudioManager.setMode(AudioManager.MODE_IN_CALL); //设置听筒播放  
  16. mAudioManager.setSpeakerphoneOn(false);  

改用另一种方式创建MediaPlayer对象。 

注意mMediaPlayer.setAudioStreamType 是在MediaPlayer。prepare

如果在Create之后再设置将不起作用

[java] view plaincopy
  1. mMediaPlayer = new MediaPlayer();   
  2. mMediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);  
  3.  mMediaPlayer.setDataSource(afd.getFileDescriptor(),  
  4.  afd.getStartOffset(),afd.getLength());  
  5. afd.close();  
  6. mMediaPlayer.prepare()  
原创粉丝点击