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