package com.baidu.shunba.face.helper;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
/**
* 声音播放
*/
public class MediaPlayerUtil {
private static MediaPlayer mPlayer;
private static boolean isPause = false;
private static volatile boolean isPlaying = false;
public static boolean isPlaying() {
return isPlaying;
}
/**
* playSound 播放声音 例如 MediaPlayerUtil.playSound(this, R.raw.verify_error_passenger);//无效票
* @param context
* @param rawResId
*/
public static void playSound(Context context, int rawResId) {
playSound(context, rawResId, null);
}
public static void playSound(Context context, final int rawResId, final OnCompletionListener listener) {
try {
release();
mPlayer = MediaPlayer.create(context, rawResId);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
release();
isPlaying = false;
if (listener != null) {
try {
listener.onCompletion(mediaPlayer);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
mPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
mPlayer.reset();
isPlaying = false;
if (listener != null) {
try {
listener.onCompletion(null);
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
});
// mPlayer.prepare();
mPlayer.start();
isPlaying = true;
isPause = false;
} catch (Exception e) {
if (listener != null) {
try {
listener.onCompletion(null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
public static void pause() {
if (mPlayer != null && mPlayer.isPlaying()) {
mPlayer.pause();
isPause = true;
}
}
// 继续
public static void resume() {
if (mPlayer != null && isPause) {
mPlayer.start();
isPause = false;
}
}
public static void release() {
if (mPlayer != null) {
try {
mPlayer.release();
} catch (Exception e) {
}
mPlayer = null;
}
isPlaying = false;
}
}
Android 音频播放超简单封装
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- SoundPool一般都用来播放很简短的声音提示,源声音文件放在APK里面的,下面做一些简单的封装思路:弄成单例模...
- 1.概述 现在的智能手机越来越代替传统音乐播放器的作用了。这次我们就来看看简单的音频播放器和视频播放器如何编写。 ...
- vs代码下载链接:https://pan.baidu.com/s/1c2dIuYk 密码:ld4b Android...
- 1、最简单的音频播放器 Android 音视频的代码好多都属于native层,Nupalyer和AweSomePl...
- 播放音频需要借助MediaPlayer对象,MediaPlayer可以播放本地音频和网络音频。文本的目的是为了尝试...