-
duration 总时长
-
currentPosition 当前位置
-
release() 资源释放
=========================================================================
具体的xml代码就不贴了,看一下组件树

==============================================================
/**
- 初始化 及 资源准备
*/
private fun audioPrepare(path: String) {
mMediaPlayer = MediaPlayer().apply {
setDataSource(path)//支持文件、网络地址、uri
prepareAsync()//异步准备,不阻塞UI线程
isLooping = false//循环播放
}
initMediaPlayerListener()
}
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(“准备

本文详细介绍了Android MediaPlayer的使用,包括setOnPreparedListener和setOnSeekBarChangeListener的运用,以及音频播放的相关操作,如获取时长、当前位置、资源释放等。同时,文章提及了Android架构师筑基的知识点,强调了学习资料与思维导图结合的重要性。
最低0.47元/天 解锁文章
3367

被折叠的 条评论
为什么被折叠?



