音乐播放器

来源:互联网 发布:js原型和原型链 面试题 编辑:程序博客网 时间:2024/06/05 10:48

AndroidManifest.xml

  <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <!-- 在应用下有service组件 -->       <span style="color:#ff0000;"><strong> <service android:name="MusicService"></service></strong></span></application>

activity_main.xml(布局文件)---有播放、停止、暂停、退出4个按钮

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <Button        android:id="@+id/btn_main_play"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="play" />    <Button        android:id="@+id/btn_main_stop"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="stop" />    <Button        android:id="@+id/btn_main_pause"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="pause" />    <Button        android:id="@+id/btn_main_exit"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="exit" /></LinearLayout>

MainActivity.java

package com.example.musicapp;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {private Button btn_main_play;private Button btn_main_stop;private Button btn_main_pause;private Button btn_main_exit;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init() {btn_main_play = (Button) findViewById(R.id.btn_main_play);btn_main_stop = (Button) findViewById(R.id.btn_main_stop);btn_main_pause = (Button) findViewById(R.id.btn_main_pause);btn_main_exit = (Button) findViewById(R.id.btn_main_exit);btn_main_play.setOnClickListener(this);btn_main_stop.setOnClickListener(this);btn_main_pause.setOnClickListener(this);btn_main_exit.setOnClickListener(this);}//设置点击监听事件@Overridepublic void onClick(View v) {//创建intent意图对象--每次调用onStartCommandIntent intent = new Intent(this, MusicService.class);if (v == btn_main_play) {//将标示传递过去intent.putExtra("action", 1);//启动intentstartService(intent);} else if (v == btn_main_stop) {intent.putExtra("action", 2);startService(intent);} else if (v == btn_main_pause) {intent.putExtra("action", 3);startService(intent);} else if (v == btn_main_exit) {//停止服务默认调用ondestroy方法stopService(intent);finish();}}}

MusicService.java

package com.example.musicapp;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.IBinder;public class MusicService extends Service {@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {//获取传递过来的action值int action = intent.getIntExtra("action", 0);switch (action) {case 1://播放play();break;case 2://停止stop();break;case 3://暂停pause();break;default:break;}return super.onStartCommand(intent, flags, startId);}/** * 成员变量播放器 */private MediaPlayer mediaPlayer;private void play() {//如果播放器不为空时候创建播放器if (mediaPlayer==null) {mediaPlayer = MediaPlayer.create(this, R.raw.part);}//如果播放器未播放时,启动播放功能if (!mediaPlayer.isPlaying()) {mediaPlayer.start();}}/** * 如果播放器不为null,并且播放器处于播放状态,开启暂停功能(释放资源并且置为null) */private void pause() {if (mediaPlayer!=null&&mediaPlayer.isPlaying()) {mediaPlayer.pause();}}/** * 如果播放器不为null,并且播放器处于播放状态,开启停止功能 */private void stop() {if (mediaPlayer!=null&&mediaPlayer.isPlaying()) {mediaPlayer.stop();mediaPlayer.release();mediaPlayer = null;}}/** * 退出之前必须先destroy */@Overridepublic void onDestroy() {super.onDestroy();if(mediaPlayer!=null) {if(mediaPlayer.isPlaying()) {mediaPlayer.stop();}mediaPlayer.release();mediaPlayer = null;}}}




0 0
原创粉丝点击