setDataSource
,设置数据源,支持本地文件、网络请求的地址、uri等,看一下源码:
-
setDataSource(FileDescriptor)
-
setDataSource(String)
-
setDataSource(Context, Uri)
-
setDataSource(FileDescriptor, long, long)
-
setDataSource(MediaDataSource)
如果是本地文件,注意读写
权限。
prepareAsync()
异步准备,不阻塞UI线程
然后看一下调用的initMediaPlayerListener
方法
=====================================================================
/**
- 播放器监听事件
*/
private fun initMediaPlayerListener() {
mMediaPlayer?.setOnBufferingUpdateListener { mp, percent ->
LogUtil.i(“缓冲进度$percent%”)
}
mMediaPlayer?.setOnPreparedListener {
LogUtil.i(“准备完成”)
//在准备完成之后获取信息,否则会有异常
val duration = mMediaPlayer?.duration//时长
val currentPosition = mMediaPlayer?.currentPosition//当前位置
LogUtil.i(“当前位置 c u r r e n t P o s i t i o n / 时长 currentPosition/时长 currentPosition/时长duration”)
tv_currentPosition.text = formatDuration(currentPosition!!)
tv_duration.text = formatDuration(duration!!)
seek_b