VLC——由VideoLAN 项目开发的免费开源跨平台多媒体播放器——旨在让用户能够随时随地播放任何类型的视频文件,无论其设备或屏幕大小如何。为了向尽可能多的用户提供最佳观看体验,VideoLAN 团队一直努力将 VLC 应用适配各种平台,包括 Android TV 和平板电脑和 Chromebook等大屏幕设备。
他们做了什么
与移动设备上的应用相比,Android TV 设备上的应用提供了独特的观看体验。电视观众坐得离屏幕更远,他们通常也希望在单个视图中看到整个内容库——就像传统的电视节目指南一样——而移动用户则希望只看到他们选择观看的一个视频。此外,用户通过遥控器在 Android TV 上导航应用,而移动应用则纯粹是触摸屏操作。
尽管 VideoLAN 决定在最新版本的应用 (3.2) 中保留 VLC 的大部分移动 UI,但团队需要进一步采取措施,以确保在移动设备和 Android TV 上都能获得最佳体验。
为电视遥控器优化
VideoLAN 的第一步是确保应用的视频播放器 UI 可以通过只有方向键和几个按钮的 Android TV 设备遥控器轻松导航。例如,团队将视频播放器选项移动到侧面板,这样在智能手机或平板电脑上可以轻松点击完整列表,并通过遥控器轻松浏览。

调整 Leanback Library 的布局
在 Android TV 设备上,VLC 用户可以一次性查看所有视频类别,而不是像移动设备上那样聚合类别。为了优化此浏览功能,Leanback Library 使用可扩展片段,让开发者能够轻松为每个内容创建丰富、动画化的体验。
VideoLAN 创建了一个自定义浏览 UI,以通过浮动操作按钮实现排序和滚动,并为每个滚动选项添加了动画。团队还创建了一个类似于其 Android Auto 应用的快速滚动功能,允许用户通过首字母搜索快速浏览视频内容,而无需滚动整个列表。
为 Android TV 实施全新的 UI 导致了大量的代码重构——这就是 Android 架构组件提出的 Model-View-ViewModel (MVVM) 架构派上用场的地方。通过遵循这些架构指南,团队能够将 UI 代码与应用逻辑清晰地分离,这简化了在新 UI 编写后应用逻辑代码的共享。现在,相同的代码驱动着 VLC 的移动和电视 UI。
团队还与 Livedata 转换协作,从他们在移动设备上使用的唯一列表开始,创建一个按视频信息(如标题、添加日期或视频长度)分组元素的映射。由于 Android TV 以横向模式显示视频,团队将内容分成几行,而不是以垂直可滚动列表的形式显示。
集成语音控制和“播放下一个”功能
最后,VideoLAN 实现了 MediaSession,以通过 Google 助理启用语音命令播放控制。团队还在电视应用代码中添加了“播放下一个”功能,允许用户直接从 Android TV 主屏幕恢复播放之前开始的视频。
成果
作为一款免费且易于导航的媒体播放器,VLC 在大屏幕上表现最佳。VideoLAN 团队继续收到来自世界各地用户的积极反馈,法国和瑞士的互联网服务提供商甚至要求将 VLC 添加为他们机顶盒上的默认应用。
VideoLAN 总裁 Jean-Baptiste Kempf 表示:“电视是 VLC 这样一款媒体播放器的天然归宿,因此我们知道有大量的用户社区正在等待在 Android TV 上使用这款应用。”“它实际上是最简单的优化平台,因为我们能够重用 95% 的 Android 代码,而且我们对结果感到非常满意。”
通过专为从小屏幕智能手机到大屏幕电视的各种设备设计的应用,VideoLAN 有望覆盖更多无论身在何处都喜欢观看自己喜爱视频的移动用户。
开始使用
查看一些最佳实践,以优化您的应用以用于 Android TV。