安卓音乐播放器(2)
来源:互联网 发布:奥运会标志 知乎 编辑:程序博客网 时间:2024/06/16 18:55
第二天,实现播放器的前台服务功能
先说一下效果,就是可以在通知里面上一曲下一曲播放和暂停
- 需要设置前台服务必须先来一个Notification,然后这个通知的界面是由我们自己来设定的(有几个按钮啊之类的)
- 在网上查到可以这样设置界面
RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.notification_layout);
- 这里的R.layout.notification_layout就是我们自己定制的布局
- 在网上看要为我们自己的布局控件设置监听的话可以这样干
BroadcastReceiver OnClickPlayListener = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { }};IntentFilter filter = new IntentFilter(); filter.addAction("com.example.musicplay.onClickLastListener");registerReceiver(onClicLastkListener,filter);Intent i = new Intent("com.example.musicplay.onClickLastListener");PendingIntent p1 = PendingIntent.getBroadcast(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT);remoteViews.setOnClickPendingIntent(R.id.former_Notification_lastMusic,p1);
大概解释一下吧
- 使用内部类做一个广播
- 动态注册广播
- 然后就可以用PendingIntent()来建立一个延时的intent,至于这里的第四个参数,我也不太清楚,然后通过remoteView给每个控件绑定PendingIntent 以达到点击事件的效果,具体的逻辑就可以在具体的广播接收器里面写了
- 这里我遇到个问题就是如果有好几个控件的话,用这个PendingIntent之前的那个Intent是不能设置具体的键值对来区分是哪一个控件事件的,搞了很久也不知道,索性就弄了好多个广播,一一对应
- 然后用remoteViews定制好界面之后传到notification里面就可以了
- 顺便再设置一下别的参数
Notification notification = new Notification.Builder(this) .setContent(remoteViews) .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setOngoing(true) .build();
- 还有一个问题就是remoteviews设置的界面并不能平铺整个通知的横向,百思不得其解
更新通知栏
- 当一首歌曲放完之后我们要去更新通知的内容的
- 这个时候要注意需要stopForeground(true);才能去设置remoteView的子空间信息,不然是不起作用的
- 设置完后再重新startForeground;
阅读全文
0 0
- 安卓音乐播放器(2)
- 安卓音乐播放器(1)
- 安卓音乐播放器
- 安卓 音乐播放器
- 安卓MP3播放器开发实例(2)之音乐播放
- 安卓播放播放音乐
- 安卓音乐播放器--侧边栏
- 安卓音乐播放器1
- 安卓简易音乐播放器
- 安卓 简易音乐播放器
- 安卓 多媒体音乐播放器
- 安卓之音乐播放器
- 安卓音乐播放器,简单,开源
- 安卓实现音乐播放器
- 安卓音乐播放器_MediaPlayer
- 安卓后台音乐播放(Service)
- 安卓音乐播放器和视频播放器实现
- 安卓后台播放音乐
- 致远电子IMX283A之点亮扩展板led
- 蓝桥杯 ALGO-2 最大最小公倍数 Java
- Python中的流程控制语句
- vue slot插槽的使用
- CNN经典网络模型
- 安卓音乐播放器(2)
- json文件读取
- Toolbar
- Serializable与serialVersionUID
- 嵌入式系统
- lettcode:540. Single Element in a Sorted Array(已排序数组中出现一次的数字,其他数字出现两次)
- vmware fusion pro 10安装详细步骤
- Servlet笔记
- 【实训】Android部分中期总结