在ExoPlayer的官方GitHub地址上的README文档上,已经更新为V2.19.0版本
项目地址为:https://github.com/google/ExoPlayer
在此版本ExoPlayer更新迁移到了AndroidX的Media3框架内
在这里也有声明
译为:请参阅我们的迁移指南和脚本,将您的代码库移动到Media3包名称。
此上,接下来展示ExoPlayer V2.19.0版本简单的使用步骤
添加依赖(导包)
dependencies {
implementation "androidx.media3:media3-exoplayer:1.1.0"
implementation "androidx.media3:media3-exoplayer-dash:1.1.0"
implementation "androidx.media3:media3-ui:1.1.0"
}
在build.gradle(:app) 目录下添加如上依赖
布局文件使用 xml
<androidx.media3.ui.PlayerView
android:id="@+id/exo_player"
android:layout_width="match_parent"
android:layout_height="200dp"/>
使用很简单,在AS的xml界面里Design模式下也能预览到该UI效果
逻辑代码展示
Kotlin语言
简单展示 索性就把代码全写在onCreate里好了
这里展示的是从raw文件目录下读取资源文件并播放
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//绑定View
val myExoPlayer:PlayerView = findViewById(R.id.exo_player)
//本地资源
val rawDataSource = RawResourceDataSource(this)
//设置播放器
val exoPlayer: ExoPlayer = ExoPlayer.Builder(this).build()
//单个视频循环播放
exoPlayer.repeatMode = Player.REPEAT_MODE_ONE
//从 raw 文件目录下读取对应的资源
rawDataSource.open(DataSpec(RawResourceDataSource.buildRawResourceUri(R.raw.erase_pen)))
exoPlayer.setMediaItem(MediaItem.fromUri(rawDataSource.uri!!))
//设置加载完成时立即播放
exoPlayer.playWhenReady = true
exoPlayer.prepare()
//关联
myExoPlayer.player = exoPlayer
}
Java 语言
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PlayerView myExoPlayer = findViewById(R.id.exo_player);
RawResourceDataSource rawResourceDataSource = new RawResourceDataSource(this);
ExoPlayer exoPlayer = new ExoPlayer.Builder(this).build();
exoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE);
try {
rawResourceDataSource.open(new DataSpec(RawResourceDataSource.buildRawResourceUri(R.raw.erase_pen)));
} catch (RawResourceDataSource.RawResourceDataSourceException e) {
throw new RuntimeException(e);
}
exoPlayer.setMediaItem(MediaItem.fromUri(rawResourceDataSource.getUri()));
exoPlayer.setPlayWhenReady(true);
exoPlayer.prepare();
myExoPlayer.setPlayer(exoPlayer);
}
效果展示
此上为简单使用ExoPlayer并加载本地raw资源文件并播放
补充
上面代码的类依赖为:
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.media3.datasource.DataSpec
import androidx.media3.datasource.RawResourceDataSource
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.ui.PlayerView
视频资源文件为 mp4格式