如何在 android 5.1 上从接收器播放音乐,它与 android 4.2 不同

Posted

技术标签:

【中文标题】如何在 android 5.1 上从接收器播放音乐,它与 android 4.2 不同【英文标题】:How to play music from receiver at android 5.1, it is different form android 4.2 【发布时间】:2016-02-25 10:52:05 【问题描述】:

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

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】:

我自己解决了这个问题,下面的代码运行良好:

    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(); 

【讨论】:

以上是关于如何在 android 5.1 上从接收器播放音乐,它与 android 4.2 不同的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 的 MainActivity 中暂停/播放背景音乐?

如何直接在 android 上从扬声器播放声音 instaed Headset?

当用户切换到 Android Studio Kotlin 中的其他页面时,如何停止播放音乐?

手把手教你做音乐播放器音乐列表的存储(上)

在 Android 上从视频播放中捕获 YUV 帧

Android - 如何在应用程序内保持音乐播放?