如何在Android 5.1上播放来自接收器的音乐,它与android 4.2不同

时间:2016-02-25 10:52:05

标签: android receiver playsound

我想从接收器而不是扬声器播放音乐,我使用下面的代码:

am.setMode(AudioManager.MODE_IN_CALL); 
mMediaPlayer = MediaPlayer.create(this, R.raw.src2k); 
mMediaPlayer.setLooping(true);
mMediaPlayer.start();

它在Android 4.2中运行良好,但它在Android 5.1中不起作用,在Android 5.1上它仍然可以从扬声器播放。我在android 4.2和5.1上测试了几款手机。有人可以给我一些建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题,下面的代码效果很好:

    mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.setMode(AudioManager.STREAM_MUSIC);
    mAudioManager.setSpeakerphoneOn(false);

    mMediaPlayer = new MediaPlayer();
    mMediaPlayer.reset();
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

    Uri uri=Uri.parse("android.resource://com.ee.ff/"+R.raw.music);

      try
      {
          mMediaPlayer.setDataSource(this, uri);
      }
      catch (Exception e)
            {
                e.printStackTrace();
            }

       mMediaPlayer.setLooping(true);

      try
         {
           mMediaPlayer.prepare();
         }
     catch (Exception e)
        {
          e.printStackTrace();
         }

       mMediaPlayer.start();