获取 MediaPlayer & AudioManager 通过耳机而不是扬声器播放?
嘿,我正在尝试通过我的耳机而不是应用程序上的主手机扬声器播放 R.raw 文件,但我所做的一切都不起作用。使用我当前的代码...它只是通过耳机播放非常轻微的静电,而不是我想要的 R.raw。
下面是我的代码,我在清单中设置了它:
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();
有什么想法吗?
Hey I'm trying to play a R.raw file thru my earpiece instead of the main phone speaker on my app but everyhting I throw at it isn't working. WIht my current code... it just plays very light static through the earpiece and not the R.raw I want.
Here is my code below and I set it in the manifest: <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();
Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试将音频管理器和媒体播放器模式设置为 AudioManager.STREAM_MUSIC。
Try setting the Audio Manager and the Media Player modes to be AudioManager.STREAM_MUSIC.
不要对媒体播放器使用“create”api,而是分别使用“setDataSource”和“prepare”api。在调用“setDataSource”之前,还要使用 STREAM_VOICE_CALL 在媒体播放器实例上调用“setAudioStreamType”api。
最后启动媒体播放器后,
在音频管理器上调用 setSpeakerphoneOn(false) 。
do not use 'create' api for media player, instead use 'setDataSource' and 'prepare' apis seperately. Also call 'setAudioStreamType' api on mediaplayer instance with STREAM_VOICE_CALL before calling 'setDataSource'.
In the end after starting media player,
call setSpeakerphoneOn(false) on audio manager.