Service——快来添加一个背景音乐播放器吧

背景音乐最常见的要数QQ空间里的了,好多网站等等一登陆就有音乐响起。现在用Service可以在以后的程序里加上,完成android里的背景音乐。

背景音乐嘛,作为背景所以不会讲究什么布局,只要在布局里设置两个按钮(开始播放和停止播放)就ok了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="播放音乐" />

    <Button
        android:id="@+id/stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止播放" />

</LinearLayout>


核心,书写Service:

public class MusicService extends Service {
	private MediaPlayer player;

	@Override
	public IBinder onBind(Intent intent) {
		
		return null;
	}
	@Override
	public void onStart(Intent intent, int startId) {
		
		super.onStart(intent, startId);
		player=MediaPlayer.create(this, R.raw.sara);
		//player=MediaPlayer.create(this, R.raw.qq);
		player.start();
	}
	public void onDestroy(){
		super.onDestroy();
		player.stop();
	}

}


这里我只实现了播放一首曲子,所以先创建了一首,可以尝试添加,做出来再说,临时先弄简单的吧。R.raw.sara为歌曲的位置和名字。

有了这些别忘了,把曲子拷进项目里啊:要在res里新建raw文件夹,然后放上曲子,如图:

注意曲子的命名,不大于7个小写字母或数字,不能是大写字母哦!

接着用Activity实现吧:

public class MainActivity extends Activity {
	private Button start;
	private Button stop;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initComponents();
	}

	private void initComponents() {
		start = (Button) findViewById(R.id.start);
		stop = (Button) findViewById(R.id.stop);
		start.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(
						"w3.dyp.musicplayer.START_AUDIO_SERVICE");
				startService(intent);

			}
		});
		stop.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(
						"w3.dyp.musicplayer.START_AUDIO_SERVICE");
				stopService(intent);
				//finish();//关闭页面

			}
		});

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}


注意里面的finish()方法如果你想关掉音乐的同时退出则需要它实现,如果只是单纯的关掉音乐则不需要这句(特别用在其他程序里当背景音乐时)。

在AndroidManifest.xml中添加Service(<application>中紧跟<Activity>后):

<service android:name="MusicService">
            <intent-filter >
                <action android:name="w3.dyp.musicplayer.START_AUDIO_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </service>

可以通过打开Application然后add选择Service,如右图,选择Service的名字:

        

赶快学着做做试试吧 奋斗,资源已上传,可以参考资源学习!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值