VLC——由 VideoLAN 项目 开发的免费开源跨平台多媒体播放器——其宗旨是赋予用户随时随地播放任何类型的视频文件的能力,无论其设备或屏幕尺寸如何。为了为尽可能多的用户提供最佳的观看体验,VideoLAN 团队努力使 VLC 应用适配各种平台,包括 Android TV 和大型屏幕设备,例如 平板电脑和 Chromebook。
他们做了什么
与移动设备上的应用相比,Android TV 设备上的应用提供了独特的观看体验。电视观众与屏幕的距离更远,他们通常希望在单个视图中看到他们的整个内容库(例如传统的电视指南),而移动用户则希望只看到他们选择观看的一个视频。此外,用户通过遥控器导航 Android TV 上的应用,而移动应用则完全依赖触摸屏。
虽然 VideoLAN 决定在应用的最新版本 (3.2) 中保留 VLC 的大部分移动 UI,但团队需要更进一步,以确保在移动设备和 Android TV 上都能获得最佳体验。
优化电视遥控器
VideoLAN 的第一步是确保应用的视频播放器 UI 可以轻松使用 Android TV 设备的遥控器进行导航,这些遥控器仅具有方向键和几个按钮。例如,团队将视频播放器选项移至侧边栏,以便在智能手机或平板电脑上轻松点击完整列表,并易于使用遥控器浏览。
调整 Leanback 库的布局
在 Android TV 设备上,VLC 用户可以一次看到所有视频类别,而不是像在移动设备上那样聚合类别。为了优化此浏览功能,Leanback 库 使用可扩展片段,使开发者能够轻松地为每个内容片段创建丰富、动画化的体验。
VideoLAN 创建了一个自定义的浏览用户界面,通过一个浮动操作按钮来实现排序和滚动,并为每个滚动选项添加了动画。团队还创建了一个类似于 Android Auto 应用的快速滚动功能,允许用户使用首字母搜索快速浏览视频内容,而无需滚动整个列表。
为 Android TV 实现全新的 UI 导致了相当数量的代码重构——这就是Android 架构组件提出的模型-视图-视图模型 (MVVM) 架构派上用场的地方。通过遵循这些架构指南,团队能够在 UI 代码和应用逻辑之间创建清晰的分隔,这简化了新 UI 编写完成后应用逻辑代码的共享。现在,相同的代码为 VLC 的移动和电视 UI 提供支持。
团队还使用LiveData 变换创建了一个地图,其中元素根据视频信息(例如标题、添加日期或视频长度)进行分组,起始于他们在移动设备上使用的唯一列表。由于 Android TV 以横向模式显示视频,因此团队将内容拆分为多行,而不是以垂直可滚动列表的形式呈现。
集成语音控制和“下一首播放”功能
最后,VideoLAN 实现了一个MediaSession,以便通过 Google 助理启用语音命令播放控制。团队还在电视应用的代码中添加了“下一首播放”功能,允许用户直接从 Android TV 主屏幕恢复之前开始的视频的播放。
结果
作为一款免费且易于导航的多媒体播放器,VLC 在更大屏幕上表现最佳。VideoLAN 团队继续收到来自世界各地用户的积极反馈,法国和瑞士的互联网服务提供商甚至要求在其机顶盒上将 VLC 添加为默认应用。
“电视是 VLC 等媒体播放器的理想场所,因此我们知道有大量的用户在等待在 Android TV 上使用该应用,”VideoLAN 总裁 Jean-Baptiste Kempf 说。“实际上,这是最简单的优化平台,因为我们能够重用 95% 的 Android 代码,我们对结果感到非常满意。”
凭借一款专为从小屏幕智能手机到大屏幕电视等设备设计的应用,VideoLAN 随时准备接触更多移动用户,无论他们喜欢在哪里观看自己喜欢的视频。
入门
查看一些最佳实践,以优化您的 Android TV 应用。