播放默认铃声
Posted
技术标签:
【中文标题】播放默认铃声【英文标题】:Playing default ringtone 【发布时间】:2010-11-01 02:05:39 【问题描述】:我一直在尝试使用 SoundPool ,但没有成功。在下面的代码中
String ringtone = Settings.System.DEFAULT_RINGTONE_URI.getPath();
SoundPool ringPhone = new SoundPool(2, AudioManager.STREAM_RING, 1);
int soundID = ringPhone.load(Settings.System.DEFAULT_RINGTONE_URI.getPath(), 1);
int soundID = ringPhone.load(ringtone, 1);
ringPhone.play(soundID, 0.99f, 0.99f, 1, 0, 1);
我收到消息“加载内容时出错 /system/ringtone sample 0 not READY”。将 URI 替换为 sd 卡上现有 mp3 文件的硬路径会产生类似的结果。
我做错了什么?谢谢,
凯尔
【问题讨论】:
【参考方案1】:您可能不希望将 SoundPool 用于此类音频播放。 SoundPool 通常用于播放非常小的 sn-ps 音频,存储为本地文件,甚至比大多数铃声还小。您应该考虑使用 MediaPlayer。以下应该可以很好地工作:
MediaPlayer player = MediaPlayer.create(this,
Settings.System.DEFAULT_RINGTONE_URI);
player.start();
尽管如果您无权从您的应用程序访问该铃声,您可能会收到 FileNotFoundException。
【讨论】:
谢谢——这正是我所需要的。很简单,而且效果很好 不错的答案。仅供参考,如果使用工厂方法 create(),则无需调用 prepare()。 你是对的 IronBlossom。已编辑代码以删除 prepare()。以上是关于播放默认铃声的主要内容,如果未能解决你的问题,请参考以下文章