ExoPlayer当前最新版 V2.19.0 使用

在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格式

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值