android - 从 Assets 文件夹设置通知声音

标签 android notifications media-player android-resources android-assets

我正在附加 Assets 文件夹中的声音文件以在通知中播放声音,但我无法播放 Assets 文件夹中的声音。

我有设置页面,用户可以从中设置通知的声音,也可以播放声音。这部分已经完成。我可以使用媒体播放器从 Assets 文件夹播放声音。我可以在创建通知时使用相同的逻辑,但是当用户单击通知时可能会发生问题,因为媒体播放器仍在播放声音。

我试过了

notification.sound = Uri.parse("file:///android_asset/Sound/Long/AlarmClock.mp3");

也试过这样

notification.sound = Uri.parse("android_asset/Sound/Long/AlarmClock.mp3");

但我的问题仍未解决。

还有其他方法可以在 Assets 目录的通知中设置声音吗?

Logcat

01-10 09:57:01.509: ERROR/PlayerDriver(31): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
01-10 09:57:01.509: ERROR/MediaPlayer(52): error (1, -4)
01-10 09:57:01.519: WARN/NotificationService(52): error loading sound for android_asset/Sound/Long/audio.mp3
01-10 09:57:01.519: WARN/NotificationService(52): java.io.IOException: Prepare failed.: status=0x1
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.MediaPlayer.prepare(Native Method)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer.startSound(AsyncPlayer.java:64)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer.access$200(AsyncPlayer.java:33)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer$Thread.run(AsyncPlayer.java:99)
01-10 09:57:01.519: WARN/PlayerDriver(31): PVMFInfoErrorHandlingComplete

或任何其他想法?请给我提示。

最佳答案

将你的 mp3 文件放入 res->raw 文件夹,尝试从 raw 文件夹获取声音文件。

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/raw/myvideo");

关于android - 从 Assets 文件夹设置通知声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801122/

相关文章:

java - 覆盖库对 "R.style.someTheme"的引用

javascript - Chrome 通知中的振动模式不适用

java - BroadcastReceiver.onReceive 未调用,但 Activity.onNewIntent 执行。为什么?

Android MediaPlayer 不会暂停

Android - 将 Intent 作为新应用启动

安卓应用和谷歌地图 :

android - SharedUserId 访问 SharedPreferences

Android SDK - 如何一次停止所有媒体播放器

android - 为什么模拟器没有得到 FCM 推送

java - NotificationManager.cancel(id) 不起作用