android开发手记之音乐播放器(一)——Service篇_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android开发手记之音乐播放器(一)——Service篇

android开发手记之音乐播放器(一)——Service篇

 2010/11/19 9:20:04  韶华无限  http://357251206-qq-com.javaeye.com  我要评论(0)
  • 摘要:这篇重发一直在学习android开发,用博文记下自己开发过程中的点点滴滴岂不是更好,因此申请了博客,记下开发过程,见证自己的成长。学习java的时间不长,android开发的时间就更短了,代码中有什么不合理的地方,希望朋友们提出了。刚学习android开发的时候就想做一个音乐播放器了,不过一直跟老师做3D游戏,也就没有时间,现在找时间开始做了,希望朋友们提出更好的方式。音乐播放是在后台的,为达到着这种效果,就要用到Service。Service在后台运行任务
  • 标签:android开发音乐播放器
这篇重发
一直在学习android开发,用博文记下自己开发过程中的点点滴滴岂不是更好,因此申请了博客,记下开发过程,见证自己的成长。学习java的时间不长,android开发的时间就更短了,代码中有什么不合理的地方,希望朋友们提出了。
刚学习android开发的时候就想做一个音乐播放器了,不过一直跟老师做3D游戏,也就没有时间,现在找时间开始做了,希望朋友们提出更好的方式。
音乐播放是在后台的,为达到着这种效果,就要用到Service。Service在后台运行任务,后台的Service可以通过BroadcastReceiver来响应发送的BroadcaIntent来实现前台与后台的Service交互。启动Service需要通过Context对象(可以是一个Activity)调用startService方法或bindServic方法。这里用startService方法来启动,如果没有启动Service,首先调用0nCreate方法,然后调用其onStart方法,如果Service已经启动,则只带有onStart方法,这里只重写了onCreate方法。
首先要开发PlayerMusicService类继承android.app.Service,代码如下:
public class PlayerMusicService extends Service{
	private static MediaPlayer mMediaPlayer;
	public static final String NEXT_MUSIC="com.zs.shao.PlayerMusicService";
	private static int notificationId=0;
	NotificationManager manager;
	Notification notification;
	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
	@Override
	public void onCreate()
	{
		super.onCreate();
		
		manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
		Intent intent=new Intent();
		PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 
		notification=new Notification();
		notification.icon=R.drawable.icon;
		notification.when=System.currentTimeMillis();
		notification.setLatestEventInfo(this, "Ω静听", null, contentIntent);
		manager.notify(notificationId,notification);
		
		
		mMediaPlayer = new MediaPlayer();
		//mMediaPlayer.setOnPreparedListener();
		mMediaPlayer.setOnCompletionListener(new OnCompletionListener()//当一首歌播放完之后调用该方法
		{
			@Override
			public void onCompletion(MediaPlayer mp) {
				sendBroadcast(new Intent(NEXT_MUSIC));
			}
		});
	}
	@Override
	public void onDestroy()
	{
		super.onDestroy();
		manager.cancel(notificationId);
		System.exit(0);
	}
	public static void playMusic(String path)
	{
		try{
			mMediaPlayer.reset();
			mMediaPlayer.setDataSource(path);
			mMediaPlayer.prepare();
			start();
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
	public static void start()
	{
		mMediaPlayer.start();
	}
	public static void pause()
	{
		mMediaPlayer.pause();
	}
	public static void stop()
	{
		mMediaPlayer.stop();
	}
	public static boolean isPlaying()
	{
		return mMediaPlayer.isPlaying();
	}
}


这部分代码在有关android的书籍了都会有所介绍的,大家可以选择更好的看。在onCreate()方法里用到了Notification,在后面将会有所介绍。

    Activity中的IntentFilter和BroadcastReceiver:
IntentFilter filter = new IntentFilter();
                filter.addAction(PlayerMusicService.NEXT_MUSIC);
                registerReceiver(recerverInfo, filter);

protected BroadcastReceiver recerverInfo=new BroadcastReceiver()
     {
			@Override
			public void onReceive(Context context, Intent intent) {
				String action=intent.getAction();
				if(action.equals(PlayerMusicService.NEXT_MUSIC))
				{//收到播放下一首歌曲的消息
					nextMusic();
					musicName();
				}
			}
     };
  • 相关文章
发表评论
用户名: 匿名