Android MediaPlayer在一些设备上无法播放声音

4

我为我的应用程序制作了一个简单的警报声。但问题是,在某些设备上播放声音,在其他设备上则没有。

以下是示例代码:

public void audioPlayer() { // leshon tingull kur ka kolision //Armando 8/7/2013
        MediaPlayer beep_alert = MediaPlayer.create(Maps.this,R.raw.double_beep);
        try {
            beep_alert.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

没有显示错误,例如在nexus 4上不播放,但在nexus 7上可以正常播放。

出了什么问题?

double_beep是一个mp3文件。

提前致谢...


你是怎么测试的?你插了两个不同的手机作为开发手机使用吗? - Alexey
请原谅我如果这很显然,但你是否已经检查了 Nexus 4 上流的音量(通常是 STREAM_MUSIC),以确保声音是可听的? - Ken Wolf
应用程序的音量降低了...现在对我来说真是太遗憾了...有没有办法从代码中增加音量?这样我就可以强制系统播放声音了吗? - Olsi Saqe
我已将其添加为答案。 - Ken Wolf
2个回答

6

确保音量已经调到最大,否则你将听不到任何声音。

通常情况下,没有用户输入的情况下,不建议程序自动调高音量 - 如果音量被降低,通常是由于用户操作引起的。

但是以下是如何实现:

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);

这将使STREAM_MUSIC的音量最大化。还有许多其他方法来控制/改变音量。
阅读以下内容,以熟悉控制音量:http://developer.android.com/training/managing-audio/volume-playback.html

0

你的音频文件不应该包含特殊字符,例如_(下划线)等。请尝试将其重命名为doubledeep。并且文件名首字母不应该是大写字母


嗨。感谢您的快速回复。我尝试将文件重命名为没有下划线的名称,但在Nexus 4中仍无法播放。 - Olsi Saqe
你检查过音量了吗?当它在一个设备上播放时,它也会在其他设备上播放。如果问题仍然存在,请再次重新安装应用程序。 - Yuva Raj
应用程序的下载量下降了。感谢您的帮助。 - Olsi Saqe
@OlsiSaqe 冷静一下 :) 如果这个答案对你有帮助,请投票并接受这个答案。因为这将帮助其他来查看这个问题的人!谢谢! - Yuva Raj
您的音频文件不应包含特殊字符,如下划线(_)等。下划线有什么问题吗? - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接