一个MP3播放器。。。。

来源:互联网 发布:linux php安装方式 编辑:程序博客网 时间:2024/05/01 21:49


service这个东西。。。其实当时讲的时候还不是特别理解,比较理解的主要就是那几个函数的调用以及调用的顺序。


首先布局,我还是喜欢用绝对布局,然后也很简单的弄了个背景,然后添加了播放、暂停、停止、退出四个按钮,布局非常之简单。。。。

<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@drawable/back"    android:gravity="center"    > <Button      android:id="@+id/play"    android:layout_x="190dip"     android:layout_y="40dip"     android:layout_width="130dip"     android:layout_height="80dip"    android:background="@drawable/c"    />        <Button      android:id="@+id/pause"    android:layout_x="190dip"     android:layout_y="240dip"     android:layout_width="130dip"     android:layout_height="80dip"     android:background="@drawable/c"    />        <Button      android:id="@+id/stop"    android:layout_x="190dip"     android:layout_y="320dip"     android:layout_width="130dip"     android:layout_height="80dip"     android:background="@drawable/c"    />        <Button      android:id="@+id/exit"    android:layout_x="190dip"     android:layout_y="400dip"     android:layout_width="130dip"     android:layout_height="80dip"     android:background="@drawable/c"    /></AbsoluteLayout>


然后是后台播放的Service:

package com.zyn.localityservice;import java.io.FileDescriptor;import java.io.PrintWriter;import android.app.Service;import android.content.Intent;import android.content.res.Configuration;import android.media.MediaPlayer;import android.os.Bundle;import android.os.IBinder;import android.util.Log;import com.zyn.R;public class MusicPlayerService extends Service {private MediaPlayer mediaPlayer = null;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {if (mediaPlayer == null) {mediaPlayer = new MediaPlayer();mediaPlayer = MediaPlayer.create(this, R.raw.tmp);mediaPlayer.setLooping(false);}}@Overrideprotected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {super.dump(fd, writer, args);}@Overrideprotected void finalize() throws Throwable {// TODO Auto-generated method stubsuper.finalize();}@Overridepublic void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);}@Overridepublic void onLowMemory() {super.onLowMemory();}@Overridepublic void onRebind(Intent intent) {super.onRebind(intent);}@Overridepublic boolean onUnbind(Intent intent) {return super.onUnbind(intent);}@Overridepublic void onDestroy() {if(mediaPlayer!=null){mediaPlayer.stop();mediaPlayer.release();}}@Overridepublic void onStart(Intent intent, int startId) {if (intent != null) {Bundle bundle = intent.getExtras();if (bundle != null) {int op = bundle.getInt("op");switch (op) {case 1:play();break;case 2:               puase();break;case 3:                stop();break;case 4:        stop();stopService(intent);break;}}}}private void play() {if (mediaPlayer!=null&&!mediaPlayer.isPlaying()) {mediaPlayer.start();}}private void puase() {if (mediaPlayer != null && mediaPlayer.isPlaying()) {mediaPlayer.pause();}}private void stop() {if (mediaPlayer != null) {mediaPlayer.stop();try {mediaPlayer.prepare();} catch (Exception e) {// TODO: handle exception}}}}

service添加之后要在AndroidManifest.xml里面予以声明:

<service android:name=".localityservice.MusicPlayerService"><intent-filter><action android:name="com.yang.music" /></intent-filter></service>

其他就没有什么了。。。。还是挺丑- -


原创粉丝点击