Android开发之基于Service的音乐播放器

http://www.2cto.com/kf/201408/324125.html

http://blog.csdn.net/wwj_748/article/details/8991091

https://www.baidu.com/s?wd=Android%E5%BC%80%E5%8F%91%E4%B9%8B%E5%9F%BA%E4%BA%8EService%E7%9A%84%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%99%A8&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_sug3=2&rsv_n=2&inputT=2682&rsv_sug4=3642


这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面;当用户单击前台Activity的界面按钮或拖动进度条时,系统通过发送广播通知后台Service来改变播放状态和播放指定音乐。

程序运行效果图:

基于Service的音乐播放浓kyvc=">

Android音乐播放器


Android开发之基于Service的音乐播放器
2014-08-08      0  个评论   来源:fengyuzhengfan的专栏  
收藏   我要投稿

这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面;当用户单击前台Activity的界面按钮或拖动进度条时,系统通过发送广播通知后台Service来改变播放状态和播放指定音乐。

程序运行效果图:

基于Service的音乐播放浓kyvc=">

Android音乐播放器 音乐播放器项目结构

程序代码:

程序界面类(MusicBox.java):

package com.jph.musicbox;

import com.jph.util.ConstUtil;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
/**
 * Describe:
* 
基于Service的音乐播发器
 * 
本应用主要实现了:
 * 
1.通过前台Activity发出播放相关的控制信息,以广播的形式
 * 
传递给后台的Service,后台的Service负责音乐的播放。
 * 
并负责接收后台的广播来更新播放界面的歌曲名、歌手名。
 * 
2.通过进度条来显示当前播放的位置,当用户拖动进度条时
 * 
通过OnSeekBarChangeListener事件来控制
 * 
后台的mediaPlayer播放指定位置的音乐。
* 
@author jph
 * 
Date:2014.08.07
 * */
public class MusicBox extends Activity {	
	ImageButton btnPlayOrPause,btnPre,btnNext;	
	//进度条
	static SeekBar skbMusic;
	// 获取界面中显示歌曲标题、作者文本框
	TextView title, author;	
	String[] titleStrs = new String[] { "涛声依旧", "油菜花", "You Are The One" };
	String[] authorStrs = new String[] { "毛宁", "成龙", "未知艺术家" };
	//是否正在播放
	boolean isPlaying=false;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
setContentView(R.layout.main);
		skbMusic=(SeekBar)findViewById(R.id.skbMusic);
		skbMusic.setOnSeekBarChangeListener(sChangeListener);
		btnNext=(ImageButton)findViewById(R.id.btnNext);
		btnPlayOrPause=(ImageButton)findViewById(R.id.btnPlayOrPause);
		btnPre=(ImageButton)findViewById(R.id.btnPre);
		btnNext.setOnClickListener(listener);
		btnPlayOrPause.setOnClickListener(listener);
		btnPre.setOnClickListener(listener);
		title=(TextView)findViewById(R.id.title);
		author=(TextView)findViewById(R.id.author);
		title.setText(titleStrs[0]);
		author.setText(authorStrs[0]);		 
		//注册接收器
		MusicBoxReceiver mReceiver=new MusicBoxReceiver();
IntentFilter filter=new IntentFilter();
		filter.addAction(ConstUtil.MUSICBOX_ACTION);
		registerReceiver(mReceiver, filter);
		//启动后台Service
		Intent intent=new Intent(this, MusicService.class);
		startService(intent);
		
	}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值