概述
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package com.example.myandroid;
import java.io.IOException;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.IBinder;
import android.widget.Toast;
@SuppressLint("NewApi")
public class PlayerService extends Service {
private MediaPlayer mediaPlayer = new MediaPlayer(); //媒体播放器对象
private String path; //音乐文件路径
private boolean isPause; //暂停状态
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(mediaPlayer.isPlaying()) {
stop();
}
path = intent.getStringExtra("url");
String msg = intent.getStringExtra("MSG");
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
if(msg.equals("xx") ) {
play(0);
} else if(msg.equals("yy")) {
pause();
} else if(msg.equals("zz")) {
resume();
}
return super.onStartCommand(intent, flags, startId);
}
/**
* 播放音乐
* @param position
*/
private void play(int position) {
try {
mediaPlayer.reset();//把各项参数恢复到初始状态
mediaPlayer.setDataSource(path);
mediaPlayer.prepare(); //进行缓冲
mediaPlayer.setOnPreparedListener(new PreparedListener(position));//注册一个监听器
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 暂停音乐
*/
private void pause() {
mediaPlayer.pause();
}
/**
* 继续音乐
*/
private void resume() {
mediaPlayer.start();
isPause = false;
}
/**
* 停止音乐
*/
private void stop(){
if(mediaPlayer != null) {
mediaPlayer.stop();
try {
mediaPlayer.prepare(); // 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onDestroy() {
if(mediaPlayer != null){
mediaPlayer.stop();
mediaPlayer.release();
}
}
/**
*
* 实现一个OnPrepareLister接口,当音乐准备好的时候开始播放
*
*/
private final class PreparedListener implements OnPreparedListener {
private int positon;
public PreparedListener(int positon) {
this.positon = positon;
}
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start(); //开始播放
if(positon > 0) { //如果音乐不是从头播放
mediaPlayer.seekTo(positon);
}
}
}
}
最后
以上就是畅快银耳汤为你收集整理的java音乐播放器暂停_新人求助,音乐播放器暂停以后再点播放无响应!的全部内容,希望文章能够帮你解决java音乐播放器暂停_新人求助,音乐播放器暂停以后再点播放无响应!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复