Android音乐播放器---实现Notification控制音乐播放

最近一直在学习Android服务(Service)、广播接收者(BroadcastReceiver)、通知(Notification)的用法,趁着刚学完的热乎劲儿,做了个音乐播放器来练手。在此,我就把自己在编写过程中对服务、广播接收者、通知的理解及通知栏实现音乐播放功能的实现,和各位喜欢Android编程的基友们一起分享一下。(第一次写技术文章,想想还真有点小紧张呢!以下内容均为个人理解,所以说的不到位的地方,还请基友们指出哦)。废话不多说,直接进入主题。

为什么选择音乐播放器来作为服务、广播接收者、通知的练习项目呢?

想必各位初学Android的基友都有这样的经历,在我们接触服务之前,应用程序的运行都是依托于一个操作界面(即Activity),一旦离开这个界面,程序的操作也就随着终止了。然而,有时我们还有这样的需求,当离开一个操作界面时,程序任然需要继续执行(即后台运行),这时,我们就需要Android的另一大组件Service来实现这样的操作了。Service组件区别与Activity的一个最主要的特征他的运行不依赖界面,他就像一个幕后工作者,默默的运行在应用程序的背后,当应用程序界面关闭时,程序的运行就要靠他了,例如音乐的后台播放。

通知(Notification)为音乐播放器实现了那些功能?

后台播放的音乐,要实现对其播放的控制,可以通过通知栏工具来实现, 且看下图:
    

广播接收者(BroadCastReceiver)在音乐播放器中有什么作用?

老实说,对这个组件的理解,之前我一直都有点稀里糊涂,很多基友初接触时,可能和我一样,用他来实现了短信监听的功能,即接受系统内置的广播。音乐播放器的编写让我重新认识了广播接收者的运作机制。在Android应用中,游离着各

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
栏显示如何实现? 在 Android 中,可以使用 NotificationCompat.Builder 类创建一个带有自定义布局的通知。以下是实现在通知栏中显示音乐播放器控制的步骤: 1. 创建一个自定义布局,其中包含音乐播放器控制按钮(如播放、暂停、下一首、上一首等)和歌曲信息(如歌曲名、歌手名等)。 2. 使用 NotificationCompat.Builder 创建一个通知,并将自定义布局设置为通知的 RemoteViews。 3. 在自定义布局中为每个控制按钮设置 PendingIntent。当用户点击按钮时,将触发 PendingIntent 中指定的操作。例如,当用户点击播放按钮时,将触发 PendingIntent 播放音乐。 4. 在通知中显示歌曲信息,例如歌曲名、歌手名等。 5. 最后,将通知发送到通知栏。 以下是示例代码: ``` // 创建自定义布局 RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.notification_layout); // 设置每个控制按钮的 PendingIntent Intent playIntent = new Intent(this, MusicService.class); playIntent.setAction(ACTION_PLAY); remoteViews.setOnClickPendingIntent(R.id.play_button, PendingIntent.getService(this, 0, playIntent, 0)); Intent pauseIntent = new Intent(this, MusicService.class); pauseIntent.setAction(ACTION_PAUSE); remoteViews.setOnClickPendingIntent(R.id.pause_button, PendingIntent.getService(this, 0, pauseIntent, 0)); Intent nextIntent = new Intent(this, MusicService.class); nextIntent.setAction(ACTION_NEXT); remoteViews.setOnClickPendingIntent(R.id.next_button, PendingIntent.getService(this, 0, nextIntent, 0)); // 在通知中显示歌曲信息 NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.ic_music_note) .setContent(remoteViews) .setContentTitle("歌曲名") .setContentText("歌手名") .setPriority(NotificationCompat.PRIORITY_LOW); // 发送通知 NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(notificationId, builder.build()); ``` 注意,上面的代码中 `MusicService` 是一个后台服务,用于播放音乐。在 `MusicService` 中实现 `ACTION_PLAY`、`ACTION_PAUSE`、`ACTION_NEXT` 等操作。另外,`CHANNEL_ID` 是通知渠道的 ID,需要在应用中先创建通知渠道。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值