Android Studio V3.12环境下TV开发教程
(转自Android官网https://developer.android.com/training/tv/start)
文章源自:光谷佳武 https://blog.csdn.net/jiawuhan/article/details/80647762
视频节目属性
视频节目的属性取决于其内容的类型。 程序类型告诉系统什么元数据期望,以便UI可以适当填写。 视频节目可以是以下类型之一:
使用PreviewProgram.Builder来构建一个程序。 您可以阅读关于构建器上每个设置器的java文档中每个字段的可能值的更多信息。
PreviewProgram program = new PreviewProgram.Builder() .setChannelId(channelId) .setTitle(clip.getTitle()) .setDescription(clip.getDescription()) .setType(TvContractCompat.PreviewPrograms.TYPE_MOVIE) // Set required attributes .build();
下表显示了可以分配给每种类型视频节目的属性,并链接到PreviewProgram.Builder中相应的设置器。 标有✔的属性是必需的,标有(✔)的属性是可选的:
属性 | 电影 | 电视剧 | 电视季节 | 电视剧集 | 夹 | 事件 | 渠道 |
---|---|---|---|---|---|---|---|
作者 | (✔) | ||||||
可用性 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
规范流派 | (✔) | (✔) | (✔) | (✔) | |||
频道ID | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
内容ID | (✔) | ||||||
内容评级 | ✔ | ✔ | ✔ | ✔ | (✔) | (✔) | (✔) |
DurationMillis | ✔ | ✔ | ✔ | (✔) | |||
插曲编号 | ✔ | ||||||
情节标题 | (✔) | ||||||
类型 | (✔) | (✔) | (✔) | (✔) | |||
意图URI | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
互动计数 | (✔) | (✔) | |||||
交互类型 | (✔) | (✔) | |||||
内部提供商ID | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
项目数量 | (✔) | (✔) | |||||
生活 | (✔) | (✔) | (✔) | (✔) | (✔) | ||
Logo URI(*) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
标识内容说明(*) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
优惠价格 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
海报艺术长宽比 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
海报艺术URI | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
预览视频URI | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
发布日期 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | |
评论评级 | (✔) | (✔) | (✔) | (✔) | (✔) | ||
评论评分风格 | (✔) | (✔) | (✔) | (✔) | (✔) | ||
季节显示号码 | ✔ | ✔ | |||||
简短的介绍 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
开始时间UTC Millis(*) | ✔ | ✔ | ✔ | ✔ | |||
结束时间UTC Millis(*) | ✔ | ✔ | ✔ | ✔ | |||
起始价 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
缩略图长宽比 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
缩略图URI | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
标题 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
视频高度 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
视频宽度 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
重量 | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) | (✔) |
(*)注释:
当LIVE属性为true
时,仅在屏幕上显示START / END时间。
使用LOGO_URI时需要LOGO_CONTENT_DESCRIPTION。
预览图像
预览图像的建议尺寸为:
属性 | 纵横比 | 宽度 | 高度 |
ASPECT_RATIO_16_9 | 16:9 | 272dp | 153dp |
ASPECT_RATIO_3_2 | 3:2 | 229.5dp | 153dp |
ASPECT_RATIO_4_3 | 4:3 | 204dp | 153dp |
ASPECT_RATIO_1_1 | 1:1 | 153dp | 153dp |
ASPECT_RATIO_2_3 | 2:3 | 102dp | 153dp |
ASPECT_RATIO_MOVIE_POSTER | 1:1.441 | 106dp | 153dp |
为了获得最佳质量,预览视频应该是16:9或4:3,并且至少具有上表中指定的大小。 该徽标也应该是不透明的,以获得最佳的用户体验。
您可以使用VIDEO_WIDTH和VIDEO_HEIGHT指定确切的预览视频尺寸。
音频节目属性
音频节目的属性取决于内容的类型。 程序类型告诉系统什么元数据期望,以便UI可以适当填写。 音频节目可以是以下类型之一:
使用PreviewProgram.Builder来构建一个程序。 您可以阅读关于构建器上每个设置器的java文档中每个字段的可能值的更多信息。
PreviewProgram program = new PreviewProgram.Builder() .setChannelId(channelId) .setTitle(clip.getTitle()) .setDescription(clip.getDescription()) .setType(TvContractCompat.PreviewPrograms.TYPE_ALBUM) // Set required attributes .build();
下表显示了可以分配给每种类型音频程序的属性,并链接到PreviewProgram.Builder中的相应设置器。 标有✔的属性是必需的,标有(✔)的属性是可选的:
属性 | 跟踪 | 专辑 | 艺术家 | 播放列表 | 站 |
---|---|---|---|---|---|
作者 | (✔) | (✔) | (✔) | ||
可用性 | (✔) | (✔) | (✔) | (✔) | (✔) |
频道ID | ✔ | ✔ | ✔ | ✔ | ✔ |
内容ID | (✔) | (✔) | (✔) | (✔) | (✔) |
DurationMillis | ✔ | ||||
类型 | (✔) | (✔) | (✔) | (✔) | (✔) |
意图URI | ✔ | ✔ | ✔ | ✔ | ✔ |
互动计数 | (✔) | (✔) | (✔) | ||
交互类型 | (✔) | (✔) | (✔) | ||
内部提供商ID | (✔) | (✔) | (✔) | (✔) | (✔) |
生活 | (✔) | ||||
Logo URI(*) | (✔) | ||||
标识内容说明(*) | (✔) | ||||
优惠价格 | (✔) | (✔) | (✔) | (✔) | (✔) |
海报艺术长宽比 | ✔ | ✔ | ✔ | ✔ | ✔ |
海报艺术URI | ✔ | ✔ | ✔ | ✔ | ✔ |
Previe音频URI | (✔) | (✔) | (✔) | (✔) | (✔) |
预览视频URI | (✔) | (✔) | (✔) | (✔) | (✔) |
发布日期 | (✔) | (✔) | |||
简短的介绍 | (✔) | (✔) | (✔) | (✔) | (✔) |
起始价 | (✔) | (✔) | (✔) | (✔) | (✔) |
缩略图长宽比 | (✔) | (✔) | (✔) | (✔) | (✔) |
缩略图URI | (✔) | (✔) | (✔) | (✔) | (✔) |
标题 | ✔ | ✔ | ✔ | ✔ | ✔ |
视频高度 | (✔) | (✔) | (✔) | (✔) | (✔) |
视频宽度 | (✔) | (✔) | (✔) | (✔) | (✔) |
重量 | (✔) | (✔) | (✔) | (✔) | (✔) |
(*)注释:
使用LOGO_URI时需要LOGO_CONTENT_DESCRIPTION。
游戏程序属性
所有游戏程序都有类型属性TYPE_GAME 。
下表显示了可以分配给游戏程序的属性并链接到PreviewProgram.Builder中相应的设置器。 标有✔的属性是必需的,标有(✔)的属性是可选的:
属性 | 必需/可选 |
---|---|
作者 | (✔) |
可用性 | (✔) |
频道ID | ✔ |
内容ID | (✔) |
类型 | (✔) |
意图URI | ✔ |
内部提供商ID | (✔) |
优惠价格 | (✔) |
海报艺术长宽比 | ✔ |
海报艺术URI | ✔ |
预览视频URI | (✔) |
发布日期 | (✔) |
评论评级 | (✔) |
评论评分风格 | (✔) |
简短的介绍 | (✔) |
起始价 | (✔) |
缩略图URI | (✔) |
缩略图长宽比 | (✔) |
标题 | ✔ |
视频高度 | (✔) |
视频宽度 | (✔) |
重量 | (✔) |
观看下一个属性
将音频或视频节目添加到“播放下一个”行时,除音频/视频节目的属性外,还必须包含以下属性:
下表显示了WatchNextProgram.Builder中相应设置器的属性和链接。
属性 | 笔记 |
---|---|
观看下一个类型 | 选择播放下一行节目类型之一 : WATCH_NEXT_TYPE_CONTINUE , WATCH_NEXT_TYPE_NEXT , WATCH_NEXT_TYPE_NEW , WATCH_NEXT_TYPE_WATCHLIST 。 |
最后的合作时间 | 用户/应用程序最后使用该程序的时间。 |
最后播放位置 | 只有WATCH_NEXT_TYPE_CONTINUE 需要 |
持续时间 | 只有WATCH_NEXT_TYPE_CONTINUE 需要 |