首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JarvanMo的IT专栏

    基于ExoPlayer的ExoVideoView

    前言 本人之前写过一篇名为基于ExoPlayer的ExoPlayerVideoView的文章,近日发现竟然被盗用了。 mediaSource,where);//play from a particular position 也可以使用自义的Player: videoView.setPlayer(player); 提示:不要忘记释放ExoPlayer

    1.5K10发布于 2018-09-06
  • 来自专栏JarvanMo的IT专栏

    基于ExoPlayer的ExoVideoView

    ###前言 本人之前写过一篇名为基于ExoPlayer的ExoPlayerVideoView的文章,近日发现竟然被盗用了。 mediaSource,where);//play from a particular position 也可以使用自义的Player: videoView.setPlayer(player); 提示:不要忘记释放ExoPlayer

    1.6K20发布于 2018-08-25
  • 来自专栏QQ音乐技术团队的专栏

    ExoPlayer 多路流切换

    这种也是ExoPlayer支持本身支持的方式。 ExoPlayer作为开源播放器,具备很好的可扩展性,既支持DASH/HLS切换,同时也支持解码器重启方式的切换。 三、ExoPlayer 如何实现多路流切换? 而ExoPlayer本质上是支持多路流的,可以同时支持多个Mp4、多个音频文件、多种语言版本的歌词。 public static void switchToOtherVideoTrack(ExoPlayer exoPlayer, @NotNull Tracks tracks, int width, int 对于视频渲染器,ExoPlayer为了避免黑屏,内部会强制渲染首帧和部分关键帧。

    3.1K32编辑于 2023-09-19
  • 来自专栏JarvanMo的IT专栏

    基于ExoPlayer的ExoPlayerVideoView

    所以我们可以用诸如ijkplayer,VLC以及ExoPlayer。本文并不是讲述ExoPlayer如何使用的,而是一款基于ExoPlayer的VideoView。 音量 开始 ExoPlayerView 是一个基于ExoPlayer的视频播放器,并且做了很多封装。 当然了, 你也可以自己创建ExoPlayer; videoView.setPlayer(player); 也可以从指定位置播放: videoView.play(mediaSource,where ); 注意:不要忘记释放ExoPlayer: videoView.releaseSelfPlayer(); 可以通过如下方式为视频设置一个显示名称: mediaSource.setDisplayName 提示 永远不要忘记去释放ExoPlayer.

    4.7K30发布于 2018-09-06
  • 来自专栏码上就说

    ExoPlayer漫谈之提升渲染性能

    outputBufferId) outputFormat = codec.getOutputFormat(); // option B } } codec.stop(); codec.release(); 我们为了提升ExoPlayer 的渲染性能,核心的思路是两个: MediaCodec从同步模式切换为异步模式 播放器在独立的线程中将input buffer提交给MediaCodec ExoPlayer中异步模式的应用 MediaCodecRenderer.java

    1.5K30发布于 2021-01-19
  • 来自专栏QQ音乐技术团队的专栏

    ExoPlayer 自适应流切换分析

    二、基础知识点 前言的内容对于初学ExoPlayer开发者而言还是有些抽象,下面我们梳理一下ExoPlayer的关键类,方便理解本篇内容。 ExoPlayer内置了大量的解封装器,同样也支持自定义的Extractor来实现特定目的。 MediaSource 媒体源:在ExoPlayer中,得益于对从DataSource中抽象出了MediaSource,使得ExoPlayer在多路流管理方面更加灵活方便。 (com.google.android.exoplayer2.Format) com.google.android.exoplayer2.video.VideoRendererEventListener #onVideoInputFormatChanged(com.google.android.exoplayer2.Format) 4.3 实验结果 符合预期,成功实现了降码流 五、总结 ExoPlayer

    2.9K31编辑于 2023-10-23
  • 来自专栏播放器漫谈

    ExoPlayer 漫谈之解码器复用

    播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块 目前ExoPlayer最新的版本是2.12.2, 而且保持着凉州一个小版本, 两个月一个大版本的更新节奏, google的工作效率还是比较高的. ExoPlayer 2.10版本之前的codec复用 disabled状态, 在此状态下, 渲染器没有要播放的媒体流并且不保存解码器实例。 播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例中的 当重新prepare新的视频时,在调用prepare之前不能调用stop函数,因为stop函数会时方解码器实例 /doc/reference/com/google/android/exoplayer2/ExoPlayer.html#setForegroundMode-boolean- [uie3ep1k0j.jpg

    3.3K60发布于 2021-01-12
  • 来自专栏QQ音乐技术团队的专栏

    Android ExoPlayer 音画同步代码分析

    ExoPlayer 中,Audio Master实现中有两个核心类:com.google.android.exoplayer2.audio.AudioTrackPositionTracker和com.google.android.exoplayer2 在 ExoPlayer 中 com.google.android.exoplayer2.audio.BaseRenderer#getMediaClock 方法是空实现,但是在子类中视频依然返回 null 在有些业务中的音频输出和ExoPlayer是分开的,我们要考虑如何通过音频播放器去同步ExoPlayer中的视频渲染器,但有ExoPlayer具备高度的可扩展性,我们可以通过自定时钟的方式去同步ExoPlayer 的视频播放,当然前提是熟悉ExoPlayer的音画同步的调用流程。 但是ExoPlayer的开发者也提供了另一种通道 ,那就是通过com.google.android.exoplayer2.DefaultRenderersFactory#createRenderers,

    3.1K21编辑于 2023-08-16
  • 来自专栏播放器漫谈

    ExoPlayer 漫谈之提升渲染性能

    outputFormat = codec.getOutputFormat(); // option B } } codec.stop(); codec.release(); 我们为了提升ExoPlayer 的渲染性能,核心的思路是两个: MediaCodec从同步模式切换为异步模式 播放器在独立的线程中将input buffer提交给MediaCodec ExoPlayer中异步模式的应用 MediaCodecRenderer.java

    1.6K31发布于 2021-01-12
  • Android ExoPlayer `ExoPlaybackException` 系统性排查指南

    Android ExoPlayer ExoPlaybackException 全面解析与实战排查指南 android.exoplayer2.ExoPlaybackException 是 ExoPlayer 验证方法 使用 ADB 查看日志,确认是否仍有 SSL 错误: adb logcat | grep -i 'exoplayer\|ssl\|handshake' 2. player = new ExoPlayer.Builder(context) .setRenderersFactory(renderersFactory) .build(); 注意 使用 ADB 过滤关键日志 # 实时监控 ExoPlayer 相关日志 adb logcat | grep -i 'exoplayer\|mediacodec\|datasource\|drmsession 参考资料 ExoPlayer 官方文档 Supported Media Formats - Android Developers Google Security Provider 更新指南

    48010编辑于 2025-11-30
  • 来自专栏码上就说

    ExoPlayer漫谈之解码器复用

    播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块 目前ExoPlayer最新的版本是2.12.2, 而且保持着凉州一个小版本, 两个月一个大版本的更新节奏, google的工作效率还是比较高的. ExoPlayer 2.10版本之前的codec复用 disabled状态, 在此状态下, 渲染器没有要播放的媒体流并且不保存解码器实例。 播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例中的 当重新prepare新的视频时,在调用prepare之前不能调用stop函数,因为stop函数会释放解码器实例 /doc/reference/com/google/android/exoplayer2/ExoPlayer.html#setForegroundMode-boolean- ?

    2.7K31发布于 2021-01-21
  • 来自专栏码上就说

    Ijkplayer、ExoPlayer、VLC播放器综合比较

    ExoPlayer 是google推出的开源播放器,主要是集成了Android 提供的一套解码系统来解析视频和音频,将MediaCodec封装地非常完善,形成了一个性能优越,播放稳定性较好的一个开发播放器 ; 2.视频解码无法接入软解,可扩展性一般; 3.适合播放场景简单的项目,播放过程中无切换码流的情况; ---- ExoPlayer 会替代MediaPlayer成为Android平台上的默认播放器吗? 不会,两个原因: Android 5.0 之后Android的Codec架构做了依次重大调整,放弃了AwesomePlayer ,使用NuPlayer架构,ExoPlayer 没有做过多的兼容; ExoPlayer 这儿我简单阐述一下,因为ExoPlayer主要是采用硬解码和系统提供的部分软解码,软解码非常有限,我们知道硬解码是通过GPU工作的,提供相应的GPU指令来操作GPU实现解码的功能; 我们初始化播放器的时候 ,就会根据当前的视频格式来初始化MediaCodec,然后底层OMX调用对应的GPU指令工作;如果直播过程中存在切换码流的请求,对于ExoPlayer而言,就要重新初始化一个新的MediaCodec实例

    10.3K20发布于 2020-12-11
  • 来自专栏Flutter入门到实战

    ExoPlayer播放音视频的使用介绍

    ExoPlayer是一款开源的应用级媒体播放器,基于Android的低级媒体API构建。本指南描述了ExoPlayer库及其使用。它是指ExoPlayer的主要演示应用程序中的代码,以提供具体的示例。 三、该库的功能模块概述 ExoPlayer库的核心是ExoPlayer接口。ExoPlayer暴露了普遍使用的高级媒体播放器api功能,比如缓冲媒体、播放、暂停和拖动条的功能。 ExoPlayer可以使用这些组件,但是如果您不想用ExoPlayer默认的实现方式,也可以使用自定义实现来构建。 向完整的ExoPlayer库添加依赖关系等效于单独添加对所有库模块的依赖关系。 exoplayer-core:核心功能(必需)。 exoplayer-dash:支持DASH内容。 exoplayer-ui:用于ExoPlayer的UI组件和资源。 除了库模块外,ExoPlayer还有多个扩展模块,它们依赖于外部库来提供附加功能。这些超出了本指南的范围。

    8.1K20发布于 2021-04-07
  • 来自专栏码上就说

    一个ExoPlayer原生播放问题引起的思考

    at com.google.android.exoplayer2.extractor.ts.TsExtractor.read(TsExtractor.java:260) at com.google.android.exoplayer2 的原生问题,我们赶紧找到ExoPlayer的源码: https://github.com/google/ExoPlayer/blob/release-v2/library/extractor/src/main ExoPlayer为什么要这样修改? 正确的修改方式是什么样的? TS格式解析 ---- ? ExoPlayer这样修改的原因 ---- 先放上两个源码修改链接: https://github.com/google/ExoPlayer/commit/0697fb3955d8a30edb935cc428d515e2fd9d48cb https://github.com/google/ExoPlayer/issues/3149 ?

    4.1K20发布于 2021-04-29
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】Android 编译报错 ( Could not resolve com.google.android.exoplayer:exoplayer:r | 依赖下载失败通用解决方案总结 )

    > Could not resolve com.google.android.exoplayer:exoplayer:r1.5.11. /exoplayer/r1.5.11/exoplayer-r1.5.11.pom' /exoplayer/r1.5.11/exoplayer-r1.5.11.pom' , 它支持多种媒体格式和流媒体协议 ; ijkplayer-exo 是 BliBli 对 Google 的 ExoPlayer 播放器的封装 , 通过封装 ExoPlayer,ijkplayer-exo 使得开发者能够在使用 ijkplayer 框架的同时,也能利用 ExoPlayer 的特性和功能 ; 通过在网络上进行搜索 , 确定 com.google.android.exoplayer:exoplayer

    1.4K10编辑于 2024-04-20
  • 来自专栏音视频开发之旅

    音视频开发之旅(44)-ExoPlayer介绍及简单使用

    从这篇开始我们进入阶段五 —— 一些音视频开源项目的学习使用分析,今天我们进入ExoPlayer部分的学习实践 一、ExoPlayer基本介绍 1.1 ExoPlayer优缺点 ExoPlayer是谷歌开源的一个应用级的音视频播放器 内部的实现也是调用了低层API,比如:MediaCodec、AudioTrack等 画张表格来对比下ExoPlayer和MediaPlayer,更直观的了解 exoplayer.png ExoPlayer 1.2 ExoPlayer架构设计 ExoPlayer的核心是ExoPlayer的接口,其中定义了包涵传统播放器的功能(缓冲音视频、播放、暂停、seek等)。 exoplayer-core: Core functionality (required). exoplayer-dash: Support for DASH content. exoplayer-hls 机型设备的适配问题始终是一个大问题 四、资料 Media streaming with ExoPlayer ExoPlayer blog ExoPlayer developer guide ExoPlayer

    9.7K00发布于 2021-05-15
  • 来自专栏RTSP/RTMP直播相关

    4款知名播放器比较:ijkPlayer、VLC、SmartPlayer、ExoPlayer

    ExoPlayer ExoPlayer 是google推出的开源播放器,主要是集成了Android 提供的一套解码系统来解析视频和音频,将MediaCodec封装地非常完善,形成了一个性能优越,播放稳定性较好的一个开发播放器 ExoPlayer is an application level media player for Android. Using ExoPlayer Via jCenter The easiest way to get started using ExoPlayer is by including the following in your project's build.gradle file: compile 'com.google.android.exoplayer:exoplayer:rX.X.X' where rX.X.X :ExoPlayer:library') } As a jar If you want to use ExoPlayer as a jar, run: .

    10.8K70发布于 2021-03-18
  • 来自专栏音视频开发之旅

    音视频开发之旅(45)-ExoPlayer 音频播放器实践(一)

    通过上一篇的学习实践,我们了解了ExoPlayer的优缺点以及基本用法,今天我们进入ExoPlayer的音频播放实践,我们来一起实现一个简单的音频播放器。 也包含媒体播放器实例(比如我们本篇实践的ExoPlayer) MediaSession 一般在MediaBrowserService的onCreate中创建,通过MediaSession.CallBack 完整代码已上传至 github https://github.com/ayyb1988/mediajourney 三、资料 ExoPlayer Android开发之ExoPlayer的学习和使用(音频) 讲解 Media streaming with ExoPlayer ExoPlayer blog ExoPlayer developer guide Easy Audio Focus with ExoPlayer 感谢你的阅读 下一篇我们继续学习实践ExoPlayer,分析uamp的设计与实现,欢迎关注公众号“音视频开发之旅”,一起学习成长。 欢迎交流

    6.4K00发布于 2021-05-29
  • 来自专栏中国Android研究院

    YouTube开源播放器中文使用指南

    缺点 相比于Android原生的MediaPlayer,ExoPlayer将显著的消耗更多的电量 集成ExoPlayer将对你的APP包体增加几百KB的大小 叁·支持设备的情况 ExoPlayer 的使用 我们只要按照下面的步骤就能简单的将ExoPlayer使用起来了: 1、添加对ExoPlayer库的依赖 2、创建一个SimpleExoPlayer实例 3、将播放器关联到播放渲染的View上 () } 在app module的build.gradle中添加对ExoPlayer的依赖: implementation 'com.google.android.exoplayer:exoplayer JavaVersion.VERSION_1_8 } 创建播放器实例 ExoPlayer提供了一个工厂类ExoPlayerFactory用来实例化不同的ExoPlayer的对象。 项目地址:https://github.com/google/ExoPlayer 官方文档:https://exoplayer.dev

    4.7K20发布于 2019-07-24
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】Android 编译报错 ( Could not resolve xxx | 手动下载依赖库并进行本地配置 Gradle 依赖的解决方案 | 构建 Maven 依赖下载路径 )

    > Could not resolve com.google.android.exoplayer:exoplayer:r1.5.11. Required by: project :ijkplayer-exo > Could not resolve com.google.android.exoplayer:exoplayer /exoplayer/r1.5.11/exoplayer-r1.5.11.pom' /exoplayer/r1.5.11/exoplayer-r1.5.11.pom' Maven 中央仓库 https://repo1.maven.org/maven2/ 中没有 com.google.android.exoplayer:exoplayer 依赖库 ; 4、在 Gradle

    3K10编辑于 2024-04-20
领券