android - VideoView 和 ExoPlayer 有什么区别。为什么我更喜欢其中之一?
问题描述
我开发了一个视频流应用程序,我正在研究现有的视频渲染库来渲染 .mkv (H253-255) 和 .mp4。
我看到有一个原生的 Android View VideoView
,它使用MediaCodec
并具有很多功能,所以我确信这是一个很好的库,但后来我遇到了 ExoPlayer(由 Google 提供),它可以做同样的事情。
所以我想知道两者之间有什么区别?
解决方案
与 videoview 相比,Exoplayer 更灵活、更易于定制,并且更稳定,并且具有许多 videoview 所没有的其他功能,比如举一个你需要按顺序播放视频的简单用例,所以你可以做到这一点在 Exoplayer 中使用 ConcatinatingMediaSource 非常容易,在最新版本中,它变得更加灵活和容易,但要在 videoview 中做同样的事情,你必须做很多事情才能让它工作。所以它是一个更先进、更灵活的 videoview 版本,它比 videoview 更具可定制性。我刚刚提到了一个用例,但你可以在谷歌上阅读更多关于 exoplayer 的信息,了解它为什么比 videoview 更好。这也取决于您的用例。但是我建议使用 Exoplayer,或者如果您需要更多理由,那么只需尝试按照我在 videoview 中解释的操作,您或多或少都会明白我的意思。但是 exoplayer 也有错误和问题,但正如我所说,它比 VideoView 更灵活和更好。
推荐阅读
- git - 如何从 git log 中仅获取文件列表及其更改计数?
- selenium-webdriver - GGR 和 Selenoid 设置问题 - 无法在需要 selenoid 服务器机器上运行测试
- python - 如何使用 Tweepy 在 python 中过滤推文?
- vue.js - 如何在 Vue 中多次使用收音机作为组件?
- node.js - 在文件名中包含用户名
- firebase - Listview 在颤动中被提取后消失
- web-scraping - 在 html 网页中加载更多分页 - Webscraping
- mysql - mysql 输出文件/导出到 txt 文件,但保留 db 结构中的列长度
- python - 检查来自同一列表的不断增长的嵌套列表中是否存在项目
- c - CMake 找不到 minizip 但我可以使用 zlib