我想使用android<code>MediaPlayer</code>将文件中的音频播放到手机的耳机(或已连接的耳机)中。我尝试使用本文中建议的MODE_IN_CALL hack-Android-通过耳机播放音频,但没有帮助。该应用程序还具有android.com权限。MODIFY_AUDIO_SETTINGS权限,但对<code>m_amAudioManager的任何调用。无线电话(假) 被忽略。
private AudioManager m_amAudioManager;
m_amAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
调用< code>setMode(AudioManager。流_语音_通话);< code>MediaPlayer上的也无济于事。
mediaPlayer.reset();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();
自从android 2.3以来,有没有什么改变来破解这段代码?我在Android ICS上尝试了该代码,但没有成功。有人能给我指出正确的方向吗?到目前为止,音频始终从扬声器手机播放。
好吧,在我的情况下,问题已通过使用以下代码解决
mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
mAudioManager.setSpeakerphoneOn(false);
我只是想为迪帕克·巴拉的回答添加一个完整的例子。它在不使用MediaPlayer时工作。create()方法:
this.player = new MediaPlayer();
this.player.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
try {
this.player.setDataSource(getContext(), Uri.fromFile(new File(m.localFileUrl)));
this.player.prepare();
} catch (IllegalStateException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
事实证明,正确的方法是通过以下代码。
通过耳机演奏
mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
通过免提电话播放
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
就这样。任何其他解决方案(包括这里发布的-
注意:您需要重新准备媒体播放器才能更改流。
本文向大家介绍Android开发中听筒无法播放音乐的解决方法,包括了Android开发中听筒无法播放音乐的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android开发中听筒无法播放音乐的解决方法。分享给大家供大家参考,具体如下: 这个问题让我蛋疼了,既然百度也木有资料。 耗时的主要原因是因为权限不足时,而没有终止程序,只用了一小行日志提醒,没有看到 用听筒播放很简单 还是这一
ap.onBackgroundAudioPlay(CALLBACK) 监听音乐播放事件。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 1
我有一个服务器端的webapp,提供文件上传和下载功能和一个Android应用程序,上传音乐文件到网站上,然后通过一些URL请求上传文件。 有什么建议吗?
问题内容: 我正在Android上创建游戏,并且已经将这个问题搁置了一段时间,现在又回到了问题上。在我的游戏中,我有背景音乐,枪声,爆炸声等,而且我需要能够同时玩它们。现在,当我在SoundPool类上调用play时,当前正在播放的声音被打断,新的声音开始播放。下面是我的SoundManager类及其用法。任何帮助将不胜感激,因为这确实是我需要拥有如此多音效的第一款游戏。谢谢! …这是我如何使用该
我将从REST服务接收非常短的音频数据。它们将以WAV格式到达。然后我需要在Android设备上播放它们。我想在不将数据保存到文件的情况下完成这项工作——这只会让它变得比需要的更复杂。然而,我无法从内存流让它工作。下面是我正在使用的测试代码(使用assets文件夹中的.wav文件): 当我从文件中播放它时,它是好的,但是内存流方法给了我一个IO异常准备失败错误。我怀疑问题可能是音频/wav值。我找
我无法从sd卡播放wav音频文件: 这是我的代码: 文件名路径的格式为:/storage/emulated/0/MyApp/name。wav 这是我得到的错误代码: 我希望你能帮我? 谢谢