初始化代码
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
package com.qxcm.moduleutil.utils;
|
||||
|
||||
import android.media.MediaPlayer;
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
public class MediaPlayerUtiles {
|
||||
private MediaPlayer mediaPlayer;
|
||||
|
||||
private static MediaPlayerUtiles instance = new MediaPlayerUtiles();
|
||||
|
||||
public static MediaPlayerUtiles getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private MediaPlayerUtiles() {
|
||||
if (null == mediaPlayer) {
|
||||
mediaPlayer = new MediaPlayer();
|
||||
}
|
||||
}
|
||||
|
||||
private OnMediaPlayerListener mOnMediaPlayerListener;
|
||||
|
||||
/**
|
||||
* 播放音频
|
||||
*/
|
||||
public void playAudio(String url, OnMediaPlayerListener onMediaPlayerListener) {
|
||||
playAudio(url, -1, onMediaPlayerListener);
|
||||
}
|
||||
|
||||
public boolean isPlaying() {
|
||||
return mediaPlayer != null && mediaPlayer.isPlaying();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 停止播放音频
|
||||
*/
|
||||
public void stopAudio() {
|
||||
try {
|
||||
if (null != mediaPlayer) {
|
||||
if (mediaPlayer.isPlaying()) {
|
||||
mediaPlayer.pause();
|
||||
mediaPlayer.reset();
|
||||
mediaPlayer.stop();
|
||||
}
|
||||
}
|
||||
if (mOnMediaPlayerListener != null) {
|
||||
mOnMediaPlayerListener.onCompletion(position);
|
||||
}
|
||||
this.mOnMediaPlayerListener = null;
|
||||
} catch (Exception e) {
|
||||
Log.e("stopAudio", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public long getCurrentPosition() {
|
||||
if (mediaPlayer != null) {
|
||||
return mediaPlayer.getCurrentPosition();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void playAudio(String url, int position, OnMediaPlayerListener onMediaPlayerListener) {
|
||||
this.position = position;
|
||||
try {
|
||||
stopAudio();//如果正在播放就停止
|
||||
if (this.mOnMediaPlayerListener != null) {
|
||||
this.mOnMediaPlayerListener.onCompletion(position);
|
||||
}
|
||||
this.mOnMediaPlayerListener = onMediaPlayerListener;
|
||||
mediaPlayer.reset();
|
||||
mediaPlayer.setDataSource(url);
|
||||
mediaPlayer.setLooping(false);
|
||||
mediaPlayer.prepareAsync();
|
||||
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
|
||||
@Override
|
||||
public void onPrepared(MediaPlayer mediaPlayer) {
|
||||
mediaPlayer.start();
|
||||
if (mOnMediaPlayerListener != null) {
|
||||
mOnMediaPlayerListener.onStartPlay(position);
|
||||
}
|
||||
}
|
||||
});
|
||||
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
|
||||
@Override
|
||||
public void onCompletion(MediaPlayer mp) {
|
||||
if (mOnMediaPlayerListener != null) {
|
||||
mOnMediaPlayerListener.onCompletion(position);
|
||||
}
|
||||
}
|
||||
});
|
||||
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
|
||||
@Override
|
||||
public boolean onError(MediaPlayer mp, int what, int extra) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e("播放音频失败", "");
|
||||
}
|
||||
}
|
||||
|
||||
public interface OnMediaPlayerListener {
|
||||
void onStartPlay(int position);
|
||||
|
||||
void onCompletion(int position);
|
||||
}
|
||||
|
||||
private int position = -1;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user