我试过推荐的
setSpeakerphoneOn(true)
Run Code Online (Sandbox Code Playgroud)
而且不推荐
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
Run Code Online (Sandbox Code Playgroud)
但都没有奏效.
我试过了
setWiredHeadsetOn(false)
Run Code Online (Sandbox Code Playgroud)
但这也不起作用,并且已被弃用.
有趣的是,
isSpeakerphoneOn()
Run Code Online (Sandbox Code Playgroud)
报告也是如此
isWiredHeadsetOn()
Run Code Online (Sandbox Code Playgroud)
此外,还设置了以下权限
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud) 我想使用android将文件中的音频播放到手机的耳机(或已连接的耳机)中MediaPlayer.我尝试使用此线程中建议的MODE_IN_CALL黑客 - 安卓 - 通过耳机播放音频, 但这没有帮助.该应用程序还具有android.permission.MODIFY_AUDIO_SETTINGS权限,但m_amAudioManager.setSpeakerphoneOn(false);忽略任何调用.
private AudioManager m_amAudioManager;
m_amAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
Run Code Online (Sandbox Code Playgroud)
要在通话setMode(AudioManager.STREAM_VOICE_CALL);上MediaPlayer没有帮助.
mediaPlayer.reset();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();
Run Code Online (Sandbox Code Playgroud)
自从android 2.3打破这段代码后有什么变化?我在Android ICS上尝试了代码而没有任何成功.有人能指出我正确的方向吗?到目前为止,音频总是从扬声器电话播放.
我有一个应用程序,当在手机上使用时会显示扬声器切换按钮.拨动开关切换手机耳机和扬声器之间的音频路由.但是,当应用程序在平板电脑(或任何没有耳机的设备)上运行时,我想删除切换按钮,因为所有音频都通过免提电话发送.
理想情况下,我想使用某种isEarpiecePresent()调用,或者在某些配置对象上检查一个标志来查找此信息,但我在API中找不到任何类型的那种.
我试图通过调用AudioManager.setSpeakerphoneOn(false),然后检查来解决这个问题AudioManager.isSpeakerphoneOn(),希望它仍然会返回true,我可以关闭它.false即使音频仍然通过扬声器路由,系统也会返回.
我目前正在考虑检查电话功能,即使这不完全适合.还有其他想法吗?
嗨,我是新来的.我的自学项目是一个播放音频新闻流的小应用程序.为了有效,应用程序确实需要中断任何当前播放的媒体播放器(例如:Last FM,Imeem,音乐播放器,Spotify等).
我不知道将播放什么或将播放什么应用程序,但我想让他们都暂停,直到我完成.听起来相当大胆,我知道,但它必须是可能的,因为当有来电时,基本上就会发生这种情况.
我可以向所有要求他们暂停一下的音频播放器发送消息吗?我可以欺骗来电,只是花费时间吗?
谢谢.