当前位置: 首页 > 知识库问答 >
问题:

如何在Lollipop通知中添加暂停/播放按钮?

吴飞语
2023-03-14

我有播放收音机的服务

共有1个答案

简培
2023-03-14

首先,你需要知道addAction在23 API中被弃用了,请阅读本文以了解相关信息

调用显示通知的方法

 private void showActionButtonsNotification() {


        Notification.Builder notif;
        NotificationManager nm;
        notif = new Notification.Builder(getApplicationContext());
        notif.setSmallIcon(R.mipmap.ic_launcher);
        notif.setContentTitle("Hi there!");
        notif.setContentText("This is even more text.");
        Uri path = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        notif.setSound(path);
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Intent yesReceive = new Intent();
        yesReceive.setAction(MyNotificationReceiver.RESUME_ACTION);
        PendingIntent pendingIntentYes = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, yesReceive, PendingIntent.FLAG_UPDATE_CURRENT);
        notif.addAction(R.drawable.resume, "resume", pendingIntentYes);


        Intent yesReceive2 = new Intent();
        yesReceive2.setAction(MyNotificationReceiver.STOP_ACTION);
        PendingIntent pendingIntentYes2 = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, yesReceive2, PendingIntent.FLAG_UPDATE_CURRENT);
        notif.addAction(R.drawable.stop, "stop", pendingIntentYes2);




        Intent maybeReceive2 = new Intent();
        maybeReceive2.setAction(MyNotificationReceiver.CANCEL_ACTION);
        PendingIntent pendingIntentMaybe2 = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, maybeReceive2, PendingIntent.FLAG_UPDATE_CURRENT);
        notif.addAction(R.drawable.cancel, "cancel", pendingIntentMaybe2);


        assert nm != null;
        nm.notify(MyNotificationReceiver.REQUEST_CODE, notif.getNotification());


    }

创建类来实现点击

    public class MyNotificationReceiver extends BroadcastReceiver {
        public static int REQUEST_CODE_NOTIFICATION = 1212;
        public static int REQUEST_CODE = 10;
        public static final String RESUME_ACTION = "RESUME_ACTION";
        public static final String STOP_ACTION = "STOP_ACTION";
        public static final String CANCEL_ACTION = "CANCEL_ACTION";

        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();

            Log.e("action", action);

            if (intent.getAction() != null) {
                switch (intent.getAction()) {
                    case RESUME_ACTION :
                        Toast.makeText(context, "resume", Toast.LENGTH_SHORT).show();
// you resume action
                        break;
                    case STOP_ACTION :
                        Toast.makeText(context, "stop", Toast.LENGTH_SHORT).show();
// you stop action
                        break;
                    case CANCEL_ACTION:
                        Toast.makeText(context, "cancel", Toast.LENGTH_SHORT).show();
// you cancel action
                        break;
                }
            }
        }



    }

最后,将接收者添加到您的清单

<receiver android:name=".MyNotificationReceiver">
            <intent-filter>
                <action android:name="RESUME_ACTION"/>
                <action android:name="STOP_ACTION"/>
                <action android:name="CANCEL_ACTION"/>

            </intent-filter>
        </receiver>
 类似资料:
  • 我试图实现一个播放/暂停按钮,用于连接到ARKit场景中节点的位置音频。我希望用户能够暂停音频,然后在以后的时间从暂停点恢复它。因此不好,因为这会在重新连接音频时将其重置到起始位置。 我能找到的唯一与SCNAudioPlayers相关联的暂停方法深藏在下面: 有人知道这能不能做到吗? 提前谢了。

  • 我是否可以通过任何配置,使Shaka播放器在视频中的某个持续时间/点暂停,例如,我想让播放器暂停300秒。 一种方法是更改配置,但这会破坏用户体验还有其他选择吗?

  • 在webview iframe和webview上播放的视频设置在回收卡视图上。许多视频都在他们的recyclerview上。 我想在用户开始滚动回收器时暂停播放视频,并在用户播放另一个视频时暂停播放视频。 查看代码 我想用这个: 请帮我解决这个问题。任何帮助都将不胜感激。谢谢!

  • 我有一个按钮,我想用这个按钮控制多个MediaPlayer对象。在示例中,用户从列表中选择了3个声音,当他们正在播放时,用户点击暂停图标按钮,所有声音都应该暂停(并且暂停按钮的资源应该更改为播放图标)。如果用户再次点击播放图标,所有的声音应该继续。 如果我删除代码中的其他部分,我可以实现暂停声音,这是当前正在播放,但如果我再次单击播放按钮,声音将不会播放,什么也不会发生。 我得XML: 我的代码:

  • 本文向大家介绍Android仿音乐播放器带进度的播放暂停按钮,包括了Android仿音乐播放器带进度的播放暂停按钮的使用技巧和注意事项,需要的朋友参考一下 因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。 效果如下: 主要步骤: 1、最外侧的圆环。 2、圆环内侧代表进度的圆弧。 3、暂停时在中心部位画出三角形。 4、播放时在中心部

  • ap.pauseBackgroundAudio(CALLBACK) 暂停播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%