1. MediaPlayer方法
MediaPlayer创建
可以直接调用构造函数,利用setDataSource()方法设置资源。
MediaPlayer mp = new MediaPlayer();
// path可以是本地路径,也可以是网络地址
mp.setDataSource(String path);
也可以调用create()方法,create()方法会直接调用prepare()方法。
MediaPlayer.create(Context context, int resid)
MediaPlayer.create(Context context, Uri uri)
MediaPlayer的控制方法
prepare()/prepareAsync(),提供了同步和异步两种方式设置播放器进入prepare状态
start(),启动播放器播放
pause(),暂停播放器播放
stop(),停止播放器播放
getCurrentPosition(),当前播放器的时间
seekTo(int),从指定位置开始播放
release(),释放播放器暂用资源
reset(),是播放器重回到Idle状态
setLooping(boolean),设置是否循环播放
MediaPlayer的监听器
OnPreparedListener,prepare/prepareAsync结束时调用
OnCompletionListener,播放结束时调用
OnSeekCompleteListener,seekTo(int)结束时调用
MediaPlayer播放音频
在onCreate(Bundle)方法中创建MediaPlayer,在onDestroy()方法中销毁。
@Override
protected void onCreate(Bundle savedInstanceState) {
... ...
mMediaPlayer = new MediaPlayer();
MediaPlayerListener listener = new MediaPlayerListener();
mMediaPlayer.setOnPreparedListener(listener);
mMediaPlayer.setOnCompletionListener(listener);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMediaPlayer.release();
mMediaPlayer = null;
}
private void createMediaPlayer() {
mMediaPlayer.reset();
try {
AssetFileDescriptor fd = getAssets().openFd("demo.mp3");
mMediaPlayer.setDataSource(fd.getFileDescriptor(),
fd.getStartOffset(), fd.getLength());
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IOException e) {
LogTool.loge(LOG_TAG, e);
}
}
private void startMediaPlayer() {
try {
mMediaPlayer.start();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
private void pauseMediaPlayer() {
try {
mMediaPlayer.pause();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
public void stopMediaPlayer() {
try {
mMediaPlayer.stop();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
private class MediaPlayerListener implements MediaPlayer.OnPreparedListener,
MediaPlayer.OnCompletionListener {
@Override
public void onPrepared(MediaPlayer mp) {
}
@Override
public void onCompletion(MediaPlayer mp) {
}
}
编写于:2023/2/25 11:15:02
发布 IP 属地:
版权声明
阅读:799 点赞:0 留言:0
1. MediaPlayer方法
MediaPlayer创建
可以直接调用构造函数,利用setDataSource()方法设置资源。
MediaPlayer mp = new MediaPlayer();
// path可以是本地路径,也可以是网络地址
mp.setDataSource(String path);
也可以调用create()方法,create()方法会直接调用prepare()方法。
MediaPlayer.create(Context context, int resid)
MediaPlayer.create(Context context, Uri uri)
MediaPlayer的控制方法
prepare()/prepareAsync(),提供了同步和异步两种方式设置播放器进入prepare状态
start(),启动播放器播放
pause(),暂停播放器播放
stop(),停止播放器播放
getCurrentPosition(),当前播放器的时间
seekTo(int),从指定位置开始播放
release(),释放播放器暂用资源
reset(),是播放器重回到Idle状态
setLooping(boolean),设置是否循环播放
MediaPlayer的监听器
OnPreparedListener,prepare/prepareAsync结束时调用
OnCompletionListener,播放结束时调用
OnSeekCompleteListener,seekTo(int)结束时调用
MediaPlayer播放音频
在onCreate(Bundle)方法中创建MediaPlayer,在onDestroy()方法中销毁。
@Override
protected void onCreate(Bundle savedInstanceState) {
... ...
mMediaPlayer = new MediaPlayer();
MediaPlayerListener listener = new MediaPlayerListener();
mMediaPlayer.setOnPreparedListener(listener);
mMediaPlayer.setOnCompletionListener(listener);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMediaPlayer.release();
mMediaPlayer = null;
}
private void createMediaPlayer() {
mMediaPlayer.reset();
try {
AssetFileDescriptor fd = getAssets().openFd("demo.mp3");
mMediaPlayer.setDataSource(fd.getFileDescriptor(),
fd.getStartOffset(), fd.getLength());
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IOException e) {
LogTool.loge(LOG_TAG, e);
}
}
private void startMediaPlayer() {
try {
mMediaPlayer.start();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
private void pauseMediaPlayer() {
try {
mMediaPlayer.pause();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
public void stopMediaPlayer() {
try {
mMediaPlayer.stop();
} catch (IllegalStateException e) {
LogTool.loge(LOG_TAG, e);
}
}
private class MediaPlayerListener implements MediaPlayer.OnPreparedListener,
MediaPlayer.OnCompletionListener {
@Override
public void onPrepared(MediaPlayer mp) {
}
@Override
public void onCompletion(MediaPlayer mp) {
}
}
编写于:2023/2/25 11:15:02
发布 IP 属地:
版权声明
本站内容均来自网络转载或网友提供,如有侵权请及时联系我们删除!本站不承担任何争议和法律责任!
每一个童年的梦想都值得用青春去捍卫!