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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料
    • ¥15 使用R语言marginaleffects包进行边际效应图绘制