erwa_erwa 2014-09-22 14:22 采纳率: 0%
浏览 770

做音乐播放器,用service做基本操作。急求大神解答。急!

package zuxia.android.service;

import java.io.IOException;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Environment;
import android.os.IBinder;
import android.widget.Button;
import android.widget.Toast;

public class MusicService extends Service {

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

public static final String PLAY_ACTION = "play_action";
public static final String PAUSE_ACTION = "pause_action";
public static final String LAST_ACTION="last_action";
public static final String NEXT_ACTION="next_action";

public MediaPlayer mediaPlayer;
private static final String SD_ROOT = Environment
        .getExternalStorageDirectory().getAbsolutePath();

@Override
public void onCreate() {
    // TODO Auto-generated method stub

    mediaPlayer=new MediaPlayer();
    mediaPlayer.reset();
    try {

        mediaPlayer.setDataSource(SD_ROOT+"/3.mp3");

        mediaPlayer.prepare();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    super.onCreate();
}

@Override
public void onStart(Intent intent, int startId) {

    String cmd=intent.getStringExtra("CMD");
    if(PLAY_ACTION.equals(cmd)){
        play();
    }else if(PAUSE_ACTION.equals(cmd)){
        pause();
    }  
    else if(LAST_ACTION.equals(cmd)){

        mediaPlayer.reset();
        try {

            mediaPlayer.setDataSource(SD_ROOT+"/1.mp3");
            mediaPlayer.prepare();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        play();
        Toast.makeText(this, "第二首", Toast.LENGTH_SHORT).show();
    }
    else if(NEXT_ACTION.equals(cmd)){

        mediaPlayer.reset();
        try {

            mediaPlayer.setDataSource(SD_ROOT+"/2.mp3");

            mediaPlayer.prepare();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        play();
        Toast.makeText(this, "第三首", Toast.LENGTH_SHORT).show();


    }
    super.onStart(intent, startId);
}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
}

private void play() {
    mediaPlayer.start();
}

private void pause() {
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.pause();
    }
}

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥20 关于#qt#的问题:Qt代码的移植问题
    • ¥50 求图像处理的matlab方案
    • ¥50 winform中使用edge的Kiosk模式
    • ¥15 关于#python#的问题:功能监听网页
    • ¥15 怎么让wx群机器人发送音乐
    • ¥15 fesafe材料库问题
    • ¥35 beats蓝牙耳机怎么查看日志
    • ¥15 Fluent齿轮搅油
    • ¥15 八爪鱼爬数据为什么自己停了
    • ¥15 交替优化波束形成和ris反射角使保密速率最大化