ExoPlayer是谷歌开源的一个应用级的音视频播放器。它提供了 Android 的 MediaPlayer api 的替代方案,用于在本地和通过 Internet 播放音频和视频。ExoPlayer 支持 Android 的 MediaP
ExoPlayer是谷歌开源的一个应用级的音视频播放器。它提供了 Android 的 MediaPlayer api 的替代方案,用于在本地和通过 Internet 播放音频和视频。ExoPlayer 支持 Android 的 MediaPlayer API 目前不支持的功能,包括 DASH 和 SmoothStreaming 自适应播放。
ExoPlayer于2014年推出,而在2021年新推出了AndroidX Media3。
Media3 是 Android 媒体支持库的新家,里面包括了 ExoPlayer,目前仍处于Beta 版阶段,还未发布正式版,因此ExoPlayer 和 Media3 目前处于同步更新阶段,Media3的1.0.0-beta02版本与 ExoPlayer 2.18.1 版本相对应。具体更新说明:https://developer.android.google.cn/jetpack/androidx/releases/media3#version_100_2
两者的GitHub地址,都包含有demo:Meida3 和 ExoPlayer
基本的Google Maven 仓库和Java 8支持就不说,新建的项目都会自动配置好。如果是网络视频链接,不要忘记了网络权限。如果是从ExoPlayer迁移到Media3,可查看Media3迁移指南。
主要的依赖项是media3-exoplayer,其余的media3-ui、media3-cast、media3-exoplayer-dash等等按需添加。
implementation 'androidx.media3:media3-exoplayer:1.0.0-beta02' implementation 'androidx.media3:media3-ui:1.0.0-beta02'
media3-exoplayer 对应着ExoPlayer里exoplayer-core,提供着exoplayer的核心功能,必须添加。media3-ui对应着ExoPlayer里exoplayer-ui,提供着用于ExoPlayer的UI组件和资源。
使用ExoPlayer.Builder(this).build()就可以创建出一个player:
val player = ExoPlayer.Builder(this).build()
media3-ui库为媒体播放提供了一系列预构建的UI组件,其中PlayerView中包含了PlayerControlView和渲染视频的Surface,在布局文件中直接使用PlayerView:
然后将创建的播放器添加至视图上:
playerView.player = player
在ExoPlayer中媒体数据由Mediaitem表示,setMediaItem可以填充媒体数据,addMediaItem可以填充一系列媒体数据列表。
//填充媒体数据player.addMediaItem(MediaItem.fromUri(url3))//准备播放player.prepare()//准备完成就开始播放player.playWhenReady = true
至此,就可以使用ExoPlayer进行视频播放了。playerView中封装好了对于播放器的控制以及播放异常情况。
以下为常用控制播放的方法:
当不再需要播放器时,记得释放资源:
player.stop()player.release()
通过player.addListener添加一个Player.Listener进行播放事件的监听。Player.Listener有空的默认方法,因此按需实现所需要的方法即可。
ExoPlayer具有四种播放状态:
在Player.Listener中通过onPlaybackStateChanged方法就可以拿到播放状态。
在Player.Listener中通过onPlayerError方法就可以监听到播放异常情况。
来源地址:https://blog.csdn.net/yuantian_shenhai/article/details/127870700
--结束END--
本文标题: AndroidX Media3之ExoPlayer简单使用(1)
本文链接: https://lsjlt.com/news/371671.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0