首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在安卓系统中播放raw文件夹中的mp3文件作为通知声音提示

如何在安卓系统中播放raw文件夹中的mp3文件作为通知声音提示
EN

Stack Overflow用户
提问于 2011-06-24 14:08:14
回答 7查看 29.8K关注 0票数 13

我将自己的音频文件放在resource文件夹中的raw文件夹中。我想将其设置为通知声音警报。我该如何继续呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-24 14:13:40

当你在BroadcastReceiver中收到通知时,请使用下面的代码,然后调用activity类中的activity,这样就可以播放声音文件了。

代码语言:javascript
复制
mMediaPlayer = MediaPlayer.create(this, R.raw.sound1);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(true);
mMediaPlayer.start();

快乐的编码..

票数 13
EN

Stack Overflow用户

发布于 2015-06-17 11:44:01

这通常是使用MediaPlayer实现的,但这并不是一个理想的解决方案,因为它的运行有点独立于通知,因此在静音、阻塞模式和其他各种情况下会以意想不到的方式运行。为了一致性和兼容性,应该使用通知本身的音频机制来播放声音。这可以通过设置适当的URI来实现,如下所示:

代码语言:javascript
复制
NotificationCompat.Builder builder = new NotificationCompat.Builder(
    this).setSmallIcon(R.drawable.ic_myicon)
    .setContentTitle(title).setAutoCancel(true);
Uri alarmSound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE
                    + "://" + getPackageName() + "/raw/mymp3");
builder.setSound(alarmSound);
...
builder.setContentIntent(pendingIntent);
NotificationManager manager = (NotificationManager)
    getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, builder.build());

关键部分是:

代码语言:javascript
复制
Uri alarmSound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE
                    + "://" + getPackageName() + "/raw/mymp3");

原始文件存储在您的/res/ mp3文件夹中。

票数 13
EN

Stack Overflow用户

发布于 2011-06-24 14:31:21

试试这段代码

代码语言:javascript
复制
notification.sound =Uri.parse("android.resource://" + getPackageName() + "Name OF audio store in raw folder");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6464080

复制
相关文章

相似问题

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