获取MediaPlayer& AudioManager通过耳机代替扬声器播放?

时间:2011-12-08 16:34:41

标签: android media-player audio-streaming android-audiomanager

嘿我正试图通过我的耳机而不是我的应用程序上的主要手机扬声器播放R.raw文件,但是每次我扔它都不起作用。用我现在的代码......它只是通过耳机播放非常轻的静电而不是我想要的R.raw。

以下是我的代码,我在清单中设置了它:<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

 AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
            am.setSpeakerphoneOn(false);
        am.setMode(AudioManager.MODE_IN_CALL); 

        MediaPlayer tellSecret = MediaPlayer.create(this, R.raw.secret);
    tellSecret.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
    tellSecret.start();

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试将音频管理器和媒体播放器模式设置为AudioManager.STREAM_MUSIC。

答案 1 :(得分:0)

不要使用&#39;创建&#39; api适用于媒体播放器,而是使用&#39; setDataSource&#39;和&#39;准​​备&#39; apis分开。同时调用&#39; setAudioStreamType&#39;在调用&#39; setDataSource&#39;之前,使用STREAM_VOICE_CALL在mediaplayer实例上使用api。

在启动媒体播放器后, 在音频管理器上调用setSpeakerphoneOn(false)。