播放音乐的Android通知

时间:2019-03-13 18:47:37

标签: android audio notifications

是否可以创建一个播放特定Uri的通知,即使它是库中的歌曲也是如此?当我尝试传递这种类型的Uri时,我只会得到默认的通知声音。 我一直在寻找解决方案,并且我发现了很多有关如何确保通知不会干扰音乐的评论,但是我找不到能播放音乐的东西。我看到一些讨论在api> = 26中做什么的解决方案,但我不想将其限制在oreo以上,因此我猜测我需要一个的解决方案= O(除非有一种解决方案对两者都适用)。 我发现这个方便的功能可以显示通知,并对其进行了调整以接收Uri

public void showNotification(String title, String content, Uri uriSound) {
    if (mNotificationManager == null) return;

    NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, "default")
            .setSmallIcon(R.mipmap.ic_launcher) // notification icon
            .setContentTitle(title) // title for notification
            .setContentText(content)// message for notification
            .setSound(uriSound) // set alarm sound for notification
            .setAutoCancel(true); // clear notification after click
    Intent intent = new Intent(mContext, MyCalendarReceiver.class);
    PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(pi);
    mNotificationManager.notify(0, builder.build());
}

当我打电话给我时,我传入的是路径为/external/audio/media/2092的Uri。通过与媒体播放器一起播放,我已经确认这是库中的歌曲。

private void testMedia(Uri uriSound) {
    if (mMediaPlayer != null) {
        mMediaPlayer.reset();
        mMediaPlayer = null;
    }
    mMediaPlayer = MediaPlayer.create(mContext, uriSound);
    mMediaPlayer.start();
}

因此可以通过MediaPlayer播放,但是当我将此Uri传递给通知生成器时,我得到的只是一个“叮!”。 (默认的通知声音)。 是否可以让通知播放歌曲,还是我需要在无声音的情况下显示通知并单独播放歌曲? TIA,迈克

0 个答案:

没有答案