Android 播放视频之ExoPlayer

这篇具有很好参考价值的文章主要介绍了Android 播放视频之ExoPlayer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上一篇中,我们了解了系统自带的VideoView来播放视频,但其支持的视频格式偏少,我们需要其他的视频播放器。
ExoPlayer是Google的开源的应用级媒体播放器项目,支持多种视频格式和流媒体播放,GitHub地址。

1. ExoPlayer应用

导入ExoPlayer

implementation 'com.google.android.exoplayer:exoplayer:2.16.1'

// 如果只需要基础服务,可只选择这两个
implementation 'com.google.android.exoplayer:exoplayer-core:2.16.1'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.16.1'

在布局文件里添加StyledPlayerView

<com.google.android.exoplayer2.ui.StyledPlayerView
    android:id="@+id/styled_player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Activity里面播放视频

var playerView = findViewById(R.id.styled_player_view)
mExoPlayer = ExoPlayer.Builder(this).build()
playerView.player = mExoPlayer

mExoPlayer.setMediaItem(MediaItem.fromUri(Uri.parse(uri)))
mExoPlayer.prepare()
mExoPlayer.play()

2. ExoPlayer主要方法

ExoPlayer负责视频的播放功能,主要方法有

// 设置视频资源
void setMediaItems(List<MediaItem> mediaItems)
void setMediaItems(List<MediaItem> mediaItems, boolean resetPosition)
void setMediaItems(List<MediaItem> mediaItems, int startIndex, long startPositionMs)

void setMediaItem(MediaItem mediaItem)
void setMediaItem(MediaItem mediaItem, long startPositionMs)
void setMediaItem(MediaItem mediaItem, boolean resetPosition)

// 添加视频资源
void addMediaItem(MediaItem mediaItem)
void addMediaItem(int index, MediaItem mediaItem)
void addMediaItems(List<MediaItem> mediaItems)
void addMediaItems(int index, List<MediaItem> mediaItems)

// 删除视频资源
void removeMediaItem(int index)
void removeMediaItems(int fromIndex, int toIndex)
void clearMediaItems()

// 准备视频资源
void prepare()
// 播放视频
void play()
// 暂停播放
void pause()
// 停止播放
void stop()
// 释放资源
void release()

// 播放模式,一共有三种
// REPEAT_MODE_OFF,从头到尾播放,所有视频只播放一次
// REPEAT_MODE_ONE,重复播放当前视频
// REPEAT_MODE_ALL,重复播放所有视频
void setRepeatMode(@RepeatMode int repeatMode)

MediaItem提供了两个方法加载视频,也可以用MediaItem.Builder来创建

public static MediaItem fromUri(String uri)
public static MediaItem fromUri(Uri uri)

ExoPlayer其他方法

// 快退
void seekBack()
// 快进
void seekForward()

// 播放速率
void setPlaybackSpeed(float speed)

// 是否有下一视频
boolean hasNextMediaItem()
// 跳转到下一视频
void seekToNextMediaItem()
void seekToNext()

// 是否有上一视频
boolean hasPreviousMediaItem()
// 跳转到上一视频
void seekToPreviousMediaItem()
void seekToPrevious()

3. StyledPlayerView

StyledPlayerView定义了视频播放界面,默认的播放界面包含上一个、快退、播放/暂停、快进和下一个五个按钮。
主要方法

// 隐藏播放界面
void hideController()
// 显示播放界面
void showController()

// 设置播放界面触碰后是否自动隐藏,默认是true
void setControllerHideOnTouch(boolean controllerHideOnTouch)
// 设置播放界面是否自动显示,默认是true
void setControllerAutoShow(boolean controllerAutoShow)
// 设置播放界面自动隐藏时间,默认5000
void setControllerShowTimeoutMs(int controllerShowTimeoutMs)

// 是否显示快退按钮
void setShowRewindButton(boolean showRewindButton)
// 是否显示快进按钮
void setShowFastForwardButton(boolean showFastForwardButton)
// 是否显示上一个按钮
void setShowPreviousButton(boolean showPreviousButton)
// 是否显示下一个按钮
void setShowNextButton(boolean showNextButton)

显示如下

安卓exoplayer,Android 图像动画,android,ExoPlayer文章来源地址https://www.toymoban.com/news/detail-615861.html

到了这里,关于Android 播放视频之ExoPlayer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓手机APP开发使用Media3 ExoPlayer创建一个基本的播放app

    安卓手机APP开发使用Media3 ExoPlayer创建一个基本的播放app 目录 概述  现在开始 创建一个媒体播放器 创建一个ExoPlayer 准备播放器 控制播放器 释放播放器 管理回放使用一个媒体会话 创建一个媒体会话 给其它的客户端的授权 在后台上播放媒体

    2024年04月11日
    浏览(30)
  • 深入理解Android音视频同步机制(一)ExoPlayer的avsync逻辑

    对于此前没有了解过ExoPlayer的朋友,我们在这里先用下面的时序图简单介绍一下ExoPlayer在音视频同步这块的基本流程: 图中 ExoPlayerImplInternal是Exoplayer的主loop所在处,这个大loop不停的循环运转,将下载、解封装的数据送给AudioTrack和MediaCodec去播放。 MediaCodecAudioRenderer和MediaC

    2023年04月12日
    浏览(37)
  • 移动端开源播放器对比与选型(ExoPlayer/ijkplayer/VLC/GStreamer/SmarterPlayer)

    ExoPlayer 是 Google 推出的开源播放器,主要是集成了Android 提供的一套解码系统来解析视频和音频,将 MediaCodec 封装地非常完善,并加入了对 DASH 和 HLS 等直播协议的支持,形成了一个性能优越,播放稳定性较好的一个开发播放器。 Github : https://github.com/google/ExoPlayer star fork iss

    2024年02月08日
    浏览(34)
  • Android Media3 ExoPlayer 开启缓存功能

        ExoPlayer 开启播放缓存功能,在下次加载已经播放过的网络资源的时候,可以直接从本地缓存加载,实现为用户节省流量和提升加载效率的作用。 第 1 步:实现 Exoplayer 参考 Exoplayer 官网 Release notes : 对应关系: 2.19.0 (2023-07-05)  -- AndroidX Media3 1.1.0 release. 2.19.1 (2023-08-14) 

    2024年02月04日
    浏览(41)
  • Android Media3 ExoPlayer 如何正确设置缓存大小

        在播放音视频时,如何开启 Android Media3 ExoPlayer 缓存,请参考笔者另外一篇文章: Android Media3 Exoplayer 开启缓存功能     笔者在设置 ExoPlayer 的缓存大小时,遇到一个非常奇怪的问题,例如,设置最大缓存为 5G:     如果你能一眼看出这行代码的问题,说明读者非常心细

    2024年02月02日
    浏览(22)
  • exoplayer的使用-1

    exoplayer是谷歌出品的,不同版本的api变化不少.我用的是2.18.7版本的.因为flutter插件用到这个播放器也是这个版本的. 基于exoplayer的flutter播放器有video_player,betterplayer,这两个比较有名的.先从flutter播放器说起. 如果只是做一个播放示例,这些播放器功能就满足了.通常自己添加亮度

    2024年02月16日
    浏览(23)
  • Exoplayer简介

    Exoplayer是一个android平台的播放器,支持格式比android系统的mediaplayer更好,确定性更好,mediaplayer是可以进行厂家定制的,各平台一致性比较差,这里简单介绍一下Exoplayer的最基础的使用接口,方便之后阅读源码 播放器一般分为三部分,获取DataSource,解码以及视输出。因为e

    2023年04月15日
    浏览(15)
  • Android 13.0 开机动画支持mp4格式视频作为开机动画播放

     在13.0的系统产品开发中,在系统开机动画这块一般情况下都是播放开机图片,然后绘制多张开机图片形成开机动画模式,而产品需求要求支持开机mp4格式的短视频来作为开机动画播放视频来介绍产品情况,就需要用开机视频来替代开机动画来实现功能 Android 开机画面 由三个

    2024年02月08日
    浏览(40)
  • exoplayer3 ffmpeg 扩展库编译 aar,导入集成

    exoplayer3 ffmpeg 扩展库编译 aar,导入集成。 已经编译完成的aar:https://download.csdn.net/download/mhhyoucom/88086822 编译项目方法: github下载项目:https://github.com/google/ExoPlayer FFmpeg 模块提供 ,它使用 FFmpeg 进行解码 并且可以呈现以各种格式编码的音频。 要使用该模块,您需要克隆此

    2024年02月15日
    浏览(30)
  • ExoPlayer(AndroidX Media3) 扩展ffmpeg实现音频软解码

    1.Ubuntu 20.04.4 LTS 2.AndroidNDK版本r26C 3.AndroidStudio 2023.1.1(配置好SDK和JDK 17.0.10) 4.ffmpeg6.0源码 5.ExoPlayer源码,AndroidX Media release分支版本 目前官方已废弃Exopler2,代码已经迁移到AndroidX Media,下载完成设置FFMPEG_MODULE_PATH变量 1. git clone https://github.com/androidx/media 2. cd media FFMPEG_MODULE_PATH

    2024年04月12日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包