0

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

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 测试了几部手机。任何人都可以给我一些建议吗?谢谢。

4

1 回答 1

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(); 
于 2016-03-19T11:13:12.670 回答