首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中播放铃声/闹铃

如何在Android中播放铃声/闹铃
EN

Stack Overflow用户
提问于 2010-04-12 02:28:45
回答 11查看 228.3K关注 0票数 128

我一直在寻找如何在Android中播放铃声/闹铃声音。

我按下一个按钮,我想播放铃声/闹铃声音。我找不到一个简单、直接的样本。是的,我已经看过闹钟的源代码了.但它并不简单,我也无法编译它。

我不能这样做:

代码语言:javascript
复制
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(this, alert);
final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
    player.setAudioStreamType(AudioManager.STREAM_ALARM);
    player.setLooping(true);
    player.prepare();
    player.start();
}

我得到了这个错误:

代码语言:javascript
复制
04-11 17:15:27.638: ERROR/MediaPlayerService(30): Couldn't open fd for
content://settings/system/ringtone

所以..。如果有人知道如何播放默认铃声/闹铃,请让我知道。

我不喜欢上传任何文件。只需播放默认铃声。

EN

回答 11

Stack Overflow用户

发布于 2011-12-20 06:17:27

您可以使用以下命令简单地播放设置好的铃声:

代码语言:javascript
复制
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
票数 200
EN

Stack Overflow用户

发布于 2011-04-16 22:08:12

如果用户从未在其电话上设置过闹钟,则TYPE_ALARM可能会返回null。您可以使用以下命令来说明这一点:

代码语言:javascript
复制
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

if(alert == null){
    // alert is null, using backup
    alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    // I can't see this ever being null (as always have a default notification)
    // but just incase
    if(alert == null) {  
        // alert backup is null, using 2nd backup
        alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);                
    }
}
票数 67
EN

Stack Overflow用户

发布于 2013-11-25 01:46:01

这就是我所做的:

代码语言:javascript
复制
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
MediaPlayer mp = MediaPlayer.create(getApplicationContext(), notification);
mp.start();

它类似于markov00的方式,但使用MediaPlayer而不是铃声,这可以防止干扰其他声音,如音乐,可能已经在背景中播放。

票数 64
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2618182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档