3

嘿,我正在尝试通过我的听筒而不是我的应用程序上的主电话扬声器播放 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();

有什么想法吗?

4

2 回答 2

1

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

于 2012-07-30T20:19:44.580 回答
0

不要对媒体播放器使用“create”api,而是分别使用“setDataSource”和“prepare”api。在调用“setDataSource”之前,还要使用 STREAM_VOICE_CALL 在 mediaplayer 实例上调用“setAudioStreamType”api。

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

于 2015-02-26T11:50:11.027 回答