notification+service+broadcastreceiver实现简单的音乐播放器
来源:互联网 发布:双声道音乐软件 编辑:程序博客网 时间:2024/05/21 22:33
先给大家上一张效果图 对了上一曲 下一曲没有去实现
在上一张原理图
看完原理图我想大家都应该懂了 nofification如何变更的我忘了画在里面了 我就说一下吧
当我们点击notification是也是广播到services的receiver里 控制音乐播放状态然后控制notification内文字変更
nf.contentView.setTextViewText(R.id.btn_bf, "暂停");
nm.notify(0, nf);
下面是service代码
package com.example.music;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.media.MediaPlayer;import android.os.IBinder;import android.util.Log;import android.widget.RemoteViews;public class MusicService extends Service {// 用于创建通知栏布局private RemoteViews remoteviews;// 用于播放阴雨private MediaPlayer mplayer;private NotificationManager nm;private Notification nf;// 广播监听的动作public static final String ACTION_BF = "ACTION_BF";private int flag = 1; // 记录当前播放状态private MusicServiceReceiver mr;@Overridepublic IBinder onBind(Intent arg0) {return null;}@Overridepublic void onCreate() {// 创建notificationnm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);// 注册receivermr = new MusicServiceReceiver();IntentFilter intentfilter = new IntentFilter();intentfilter.addAction(ACTION_BF);registerReceiver(mr, intentfilter);//创建notificationnf = new Notification(R.drawable.ic_launcher, "月牙湾",System.currentTimeMillis());remoteviews = new RemoteViews(this.getPackageName(),R.layout.notification);Intent intent1 = new Intent();intent1.setAction(ACTION_BF);intent1.putExtra("flag", 0);PendingIntent contentIntent = PendingIntent.getBroadcast(this, 0,intent1, 0);remoteviews.setOnClickPendingIntent(R.id.btn_bf, contentIntent);nf.contentView = remoteviews;nm.notify(0, nf);mplayer = MediaPlayer.create(this, R.raw.m);mplayer.setLooping(true);super.onCreate();}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {return super.onStartCommand(intent, flags, startId);}@Overridepublic void onDestroy() {unregisterReceiver(mr);mplayer.stop();mplayer.release();super.onDestroy();}class MusicServiceReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context arg0, Intent arg1) {flag = (flag == 1 ? 0 : 1);Log.v("music receiver", "receiver" + flag);if (flag == 0) // 正在播放{mplayer.start();nf.contentView.setTextViewText(R.id.btn_bf, "暂停"); }if (flag == 1) //{mplayer.pause();nf.contentView.setTextViewText(R.id.btn_bf, "播放");}Intent intent = new Intent("ACTION_UPDATE"); intent.putExtra("flag", flag); // 发送广播,将被Activity组件中的BroadcastReceiver接收到 sendBroadcast(intent); nm.notify(0, nf);}}}
Activity代码
package com.example.music;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {private Button btn;private Activityrececier receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.button1); btn.setOnClickListener(this); receiver = new Activityrececier(); IntentFilter filter = new IntentFilter(); filter.addAction("ACTION_UPDATE"); registerReceiver(receiver, filter); Intent intent=new Intent(this,MusicService.class);startService(intent); }@Overridepublic void onClick(View arg0) { Intent intent = new Intent("ACTION_BF"); sendBroadcast(intent);} @Override protected void onDestroy() { unregisterReceiver(receiver); super.onDestroy(); } class Activityrececier extends BroadcastReceiver{@Overridepublic void onReceive(Context arg0, Intent intent) { int flag=intent.getIntExtra("flag", 0);Log.v("Activityrececier flag",flag+"");if(flag==0){btn.setText("暂停");}else{btn.setText("播放");}} } }
点我下载
0 0
- notification+service+broadcastreceiver实现简单的音乐播放器
- android音乐播放器实现(Service+BroadcastReceiver+Notification)
- 音乐播放器通知栏切歌(Notification+BroadcastReceiver)
- Android音乐播放器---实现Notification控制音乐播放
- Android音乐播放器---实现Notification控制音乐播放
- Android音乐播放器---实现Notification控制音乐播放
- Android音乐播放器---实现Notification控制音乐播放
- 改造的音乐播放器的例子(学习Service和BroadCastReceiver必用)
- 改造的音乐播放器的例子(学习Service和BroadCastReceiver必用)(转)
- 从一个音乐播放器来了解android的Service组件和BroadcastReceiver
- Android 初步学习BroadCast与Service实现简单的音乐播放器
- Android初步学习BroadCast与Service实现简单的音乐播放器
- 音乐播放器的简单实现
- 实现简单的自定义音乐播放器
- 简单音乐播放器的实现
- android实现简单的音乐播放器
- Android音乐播放器的简单实现
- ios-音乐播放器的简单实现
- 饱和度,对比度,锐度
- Android差异化编译
- Android SDK 环境变量配置
- Repeated DNA Sequences--LeetCode
- inet_pton 与 sockaddr
- notification+service+broadcastreceiver实现简单的音乐播放器
- UIView和CALayer的关系
- nice和renice命令
- Aerospike C客户端手册——简介
- 求一个大数最左边上的数
- “哈工大讯飞”语言云发布 科大讯飞云服务再下一城
- 试题一
- Android学习之 VideoView,SurfaceView
- cocos2d-x屏幕适配原理分析