播放列表

ExoPlayer内置了一个播放列表,可以通过ExoPlayer实例来对播放列表进行增删改查。

在上篇文章中,我们使用setMediaItem方法来添加播放的视频,这个方法调用的时候会先把列表清空,再添加该视频,也就是说,这个方法只支持播放单个视频。

mPlayer.setMediaItem(mediaItem);

如果需要添加多个视频,调用addMediaItem方法即可。

MediaItem mediaItem = MediaItem.fromUri("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
MediaItem mediaItem2 = MediaItem.fromUri("http://vjs.zencdn.net/v/oceans.mp4");
mPlayer.addMediaItem(mediaItem);
mPlayer.addMediaItem(mediaItem2);

视频列表的相关方法还有很多,常用的如下所示。

//清空播放列表
mPlayer.clearMediaItems();//根据下标来移除视频
mPlayer.removeMediaItem(0);List<MediaItem> itemList = new ArrayList();
MediaItem mediaItem = MediaItem.fromUri("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
MediaItem mediaItem2 = MediaItem.fromUri("http://vjs.zencdn.net/v/oceans.mp4");
itemList.add(mediaItem);
itemList.add(mediaItem2);
//添加多个视频
mPlayer.addMediaItems(newItems,true);

播放模式

播放模式是非常常见的功能,ExoPlayer有单循环、列表循环和单次列表播放三种。

 //单次列表播放,播放完了就停止Player.REPEAT_MODE_OFF;//循环播放单个视频Player.REPEAT_MODE_ONE;//列表循环Player.REPEAT_MODE_ALL;mPlayer.setRepeatMode(Player.REPEAT_MODE_ONE);

播放列表监听

在上篇文章中讲到了Player.Listener的基本用法。本篇介绍列表监听的常用方法。

mPlayer.addListener(new Player.Listener() {//当一个视频切换到另一个视频时触发@Overridepublic void onMediaItemTransition(@Nullable MediaItem mediaItem, int reason) {//更新UI}...
}

最后

本篇讲述了播放列表的相关功能,下一篇讲述自定义布局的相关内容。

Android音视频开发之ExoPlayer(二):播放列表常用的功能相关推荐

  1. Android音视频开发之,全网疯传

    int audioFormat, int bufferSizeInBytes, int mode, int sessionId) * streamType,Android手机上提供音频管理策略,按下音 ...

  2. 深入理解Android音视频同步机制(二)ExoPlayer的avsync逻辑

    深入理解Android音视频同步机制(一)概述 深入理解Android音视频同步机制(二)ExoPlayer的avsync逻辑 深入理解Android音视频同步机制(三)NuPlayer的avsync ...

  3. 迅为RK3399开发板音视频开发之Debian9 多媒体测试

    iTOP3399平台 Debian 系统音视频部分应用层软件采用的是 Gstreamer,支持硬件编解码.本节所有的 示例均是基于 Gstreamer 命令行的形式. iTOP3399 平台内部有一个 ...

  4. 音视频开发基础(二)常用的直播协议

    如今网络的发展已经从1G,2G,3G,4G逐渐过渡到5G,5G网络的出现,音视频的使用就变得越来越广.从以前的泛娱乐过渡到了更深次的领域,比如在线教育,在线会议-然而,要想有完美的视屏体验,还是要从很 ...

  5. linux mp4转h264工具,Linux音视频开发之二:转换YUY2到I420便于压缩成h264

    在用libx264做h264压缩的时候,我们可以通过命令ffmpeg -h encoder=libx264来查看它所支持的输入格式 Encoder libx264 [libx264 H.264 / A ...

  6. WebRTC 音视频开发之路

    早在2014年就通过WebRTC实现了PC客户端的实时视频语音,那时P2P连接的建立使用的WebRTC自带的libjingle库,使用peerconnection的API实现的.后来在做远程桌面,文件 ...

  7. 音视频开发总结之二Android平台相关

    一. 音视频采集流程 串联整个音视频录制流程,完成音视频的采集.编码.封包成 mp4 输出. 通过摄像头和麦克风获得实时的音视频数据: 播放流程: 获取流->解码->播放. 录制播放路程: ...

  8. Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件(学习笔记)

    关于 AudioRecord Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风 ...

  9. Android 音视频开发(二) -- Camera1 实现预览、拍照功能

    音视频 系列文章 Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍 ...

  10. Android音视频视频基础(H264)二 SPS分析

    学习目标: SPS分析与读取 图中的标识为哥伦布编码的,均需要通过哥伦布编码解析实际值. 学习内容: 首先肯定得截个sps数据的图来看分析了. 上图红框内就是sps数据了.67是sps标识,不清楚的小 ...

最新文章

  1. 20165239其米仁增3
  2. java 传递intent_Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法...
  3. 2021-09-30
  4. python牛客网编程题_【面经】小米软件开发一面(python)面经 2020 2020
  5. 诺基亚2亿欧元建越南新工场
  6. 数据库杂谈(一)——数据库基本概念
  7. Gentle中的数据表实体类相关自定义属性的设置和获得
  8. ppython_Python pcom包_程序模块 - PyPI - Python中文网
  9. Oracle单个数据文件超过32G后需要扩容
  10. JAVA锁之可重入锁和递归锁及示例代码
  11. java格式化时间博客园_Java 日期格式化工具类
  12. redis数据类型语法及与java连接
  13. 安装包制作工具 SetupFactory使用 详解
  14. 在nginx中编写html,码头不会在nginx html根目录中创建文件夹
  15. PUE 1.2,总投资达36.4亿,17600个机柜!天和防务拟建陕西最大数据中心
  16. Python之禅及其翻译
  17. 量子通信——量子的概念与量子力学
  18. update语句修改mysql密码_修改 mysql 密码
  19. 英语影视台词---绿皮书(2)(利普 我以为你要把那家伙打死了)
  20. 用户画像基础之数据架构

热门文章

  1. 港科报道 | 8位校友入选香港25青年科创先锋人物
  2. 蝉妈妈对话曹颖:5月带货1.1亿,踩过的坑都变成了卖货的筹码
  3. office使用latex公式
  4. C# ManualResetEvent 与 AutoResetEvent 区别
  5. 哪个软件测试上传速度最准,哪个软件测网速准确,360怎么测网速
  6. 最新Everest 企业版(AIDA64)使用SQL保存数据的方法介绍
  7. “AI超人”李开复慢下来的投资节奏
  8. excel做地图热力图_如何用excel制作中国地图热力数据图
  9. java浮动广告_浮动的广告代码
  10. ubuntu20.04 3060 显卡 安装NVIDIA显卡驱动