Android开发之MediaPlayer使用
16lz
2021-01-26
MediaPlayer
MediaPlayer是Android系统自带的,可以用来播放音频、视频和流媒体。MediaPlayer包含了Audio和Video的播放功
常用方法
方法 | 说明 |
---|---|
create | 创建一多媒体 |
getCurrentPosition | 当前播放位置 |
getDuration | 文件的总时间 |
getVideoHeight | 视频的高度 |
getVideoWidth | 视频的宽度 |
isLooping | 是否循环播放 |
isPlaying | 是否正在播放 |
start | 开始播放 |
pause | 暂停 |
prepare | 准备(同步) |
prepareAsync | 准备(异步) |
stop | 停止播放 |
release | 释放相关资源 |
reset | 重置 |
seekTo | 指定 |
setAudioStreamType | 设置类型 |
setDataSource | 设多媒体数据来源 |
setDisplay | 设置显示多媒体的载体 |
setLooping | 是否循环播放 |
setOnButteringUpdateListener | 网络流媒体的缓冲监听 |
setOnErrorListener | 错误信息监听 |
setOnVideoSizeChangedListener | 视频尺寸监听 |
setScreenOnWhilePlaying | 设置是否保持屏幕常亮 |
setVolume | 设置音量 |
播放实现
简单步骤
创建一个MediaPlayer对象,实现start()方法,便可以简单播放音乐
mPlayer = MediaPlayer.create(this, R.raw.summer); mPlayer.start();
具体步骤
先创建MediaPlayer对象;
调用setDataSource()方法来设置音频文件来源;
再调用prepare()/prepareAysnc()方法进行准备;
调用start方法就可以播放音频。
mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(file.getAbsolutePath()); mediaPlayer.setOnPreparedListener(this); mediaPlayer.prepareAsync(); //setOnPreparedListener(this)实现的方法 @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start(); }
MediaPlayer实现了四个不同setDataSource()方法
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
可以从路径,raw,Assets,网络等加载
实例
简单实现一个带进度条的音乐播放器
布局文件很简单,一个进度条,三个按钮
具体实现
点击播放按钮进行播放
case R.id.btn_play: if (mPlayer != null) { mPlayer.release(); mPlayer = null; } mPlayer = new MediaPlayer(); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.setOnPreparedListener(this); try { mPlayer.setDataSource(url); } catch (Exception e) { e.printStackTrace(); } mPlayer.prepareAsync(); break;
OnPrepared准备完成之后,开始播放
//setOnPreparedListener(this)实现的方法@Overridepublic void onPrepared(MediaPlayer mp) { mp.start(); timer();}
点击暂停或停止按钮,暂停或结束播放
case R.id.btn_pause: if (mPlayer.isPlaying()) { mPlayer.pause(); } break; case R.id.btn_stop: if (mPlayer != null) { mPlayer.stop(); mPlayer.reset(); } break;
更多相关文章
- Android权限总结
- Android布局管理(4)
- 【Android(安卓)界面效果43】Android(安卓)LayoutInflater的infl
- Android从零开始(十五)
- Android(安卓)strings.xml中空格符的标识方法附xml特殊字符表示
- Android(安卓)编码规范 | 代码风格指南
- Android(安卓)Cavans 基础应用
- RemoteViews 中暗藏的坑
- Android(安卓)ImageView的拖拽实现