首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在某些设备上设置播放速度时,ExoPlayer动作慢

在某些设备上设置播放速度时,ExoPlayer动作慢
EN

Stack Overflow用户
提问于 2018-02-20 14:36:35
回答 1查看 2.8K关注 0票数 2

我成功地使用SimpleExoPlayer来播放HLS流,并通过在播放机上设置PlaybackParameters实现了选择不同播放速度(1.25x、1.5x等)的工作方式。但是在一些设备中,当我选择任何与1x不同的播放速度时,播放器就会开始跳过很多帧--和音频变得有点失真。

在2.6.0的ExoPlayer发布说明中,它说当渲染器无法保持速度时,它们开始只显示关键帧,我怀疑这就是正在发生的事情。但是我已经看到,在同一款智能手机上使用YouTube应用程序2倍的播放速度是非常有效的,所以我想知道我是否可以做些什么来提高的性能的ExoPlayer渲染器。也许我在设定播放速度时没有使用HW解码?有什么配置吗?

我目前正在使用ExoPlayer版本的2.6.1。我使用的对象是一个SimpleExoPlayer实例,它具有一个DefaultRenderersFactory激活扩展(使用EXTENSION_RENDERER_MODE_ON)和一个DefaultTrackSelector。对于媒体源,我使用HlsMediaSource和本地创建的Handler。如果有任何其他相关的信息/代码,我可以提供,以帮助理解上下文,请告诉我。

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 19:09:03

release上构建应用程序时,问题不会发生。这是由于在调试模式下运行应用程序时关闭了Sonic lib (一个ExoPlayer依赖项)使用的JVM上的优化,根据andrewlewis在该项目的github的讨论中说:

“新的实现使用Java版本的Sonic,因此它的性能受到Java运行时应用的优化的影响。在可调试器构建中有一个特定的优化被关闭,这会导致Sonic的内部循环非常慢。如果您构建了一个发布版APK,这个优化应该适用于(所有的API版本),而且我发现性能在我测试过的各种设备上都很好,包括运行Android4.2.2 (API 17)的三星Galaxy S4。”

来源:https://github.com/google/ExoPlayer/issues/26#issuecomment-296133260

API 24+可以很好地处理调试和发布。

在ExoPlayer文档中也有关于这一点的文本:https://google.github.io/ExoPlayer/faqs.html#why-doesnt-setplaybackparameters-work-properly-on-some-devices

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48887678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档