音频节目属性
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
音频节目的属性取决于内容的类型。计划
type 用于告知系统期望使用什么元数据,以便填充界面
。音频节目可以是以下类型之一:
使用PreviewProgram.Builder
以构建程序。如需详细了解每个字段的可能值,请参阅
请参阅构建器上每个 setter 的 Java 文档。
以下示例展示了如何使用 PreviewProgram.Builder
:
PreviewProgram program = new PreviewProgram.Builder()
.setChannelId(channelId)
.setTitle(clip.getTitle())
.setDescription(clip.getDescription())
.setType(TvContractCompat.PreviewPrograms.TYPE_ALBUM)
// Set required attributes
.build();
下表显示了可分配给每种类型的
以及指向
PreviewProgram.Builder
。标有 ✔ 的属性为必需属性;标有 (✔) 的则是选填项。
(*) 注意 :使用 LOGO_URI 时,LOGO_CONTENT_DESCRIPTION 为必需。
本页面上的内容和代码示例受内容许可 部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# Audio program attributes\n\nAttributes for audio programs depend on the type of the content. The program\ntype tells the system what metadata to expect so that the UI can be filled in\nappropriately. Audio programs can be one of these types:\n\n- [`TYPE_TRACK`](/reference/androidx/tvprovider/media/tv/TvContractCompat.PreviewPrograms#TYPE_TRACK())\n- [`TYPE_ALBUM`](/reference/androidx/tvprovider/media/tv/TvContractCompat.PreviewPrograms#TYPE_ALBUM())\n- [`TYPE_ARTIST`](/reference/androidx/tvprovider/media/tv/TvContractCompat.PreviewPrograms#TYPE_ARTIST())\n- [`TYPE_PLAYLIST`](/reference/androidx/tvprovider/media/tv/TvContractCompat.PreviewPrograms#TYPE_PLAYLIST())\n- [`TYPE_STATION`](/reference/androidx/tvprovider/media/tv/TvContractCompat.PreviewPrograms#TYPE_STATION())\n\nUse [`PreviewProgram.Builder`](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder)\nto build a program. You can read more about possible values for each field in\nthe Java documentation for each setter on the builder.\n\nThe following example shows how to use `PreviewProgram.Builder`: \n\n PreviewProgram program = new PreviewProgram.Builder()\n .setChannelId(channelId)\n .setTitle(clip.getTitle())\n .setDescription(clip.getDescription())\n .setType(TvContractCompat.PreviewPrograms.TYPE_ALBUM)\n // Set required attributes\n .build();\n\nThe following table shows the attributes that can be assigned to each type of\naudio program, and links to the corresponding setter in\n`PreviewProgram.Builder`. Attributes marked ✔ are required; those marked (✔) are optional.\n\n| Attribute | Track | Album | Artist | Playlist | Station |\n|---------------------------------------------------------------------------------------------------------------------------------------------|-------|-------|--------|----------|---------|\n| [Author](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setAuthor(java.lang.String)) | (✔) | (✔) | | (✔) | |\n| [Availability](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setAvailability(int)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Channel ID](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setChannelId(long)) | ✔ | ✔ | ✔ | ✔ | ✔ |\n| [Content ID](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setContentId(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Duration](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setDurationMillis(int)) | ✔ | | | | |\n| [Genre](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setGenre(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Intent URI](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setIntentUri(android.net.Uri)) | ✔ | ✔ | ✔ | ✔ | ✔ |\n| [Interaction Count](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setInteractionCount(long)) | | | (✔) | (✔) | (✔) |\n| [Interaction Type](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setInteractionType(int)) | | | (✔) | (✔) | (✔) |\n| [Internal Provider ID](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setInternalProviderId(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Live](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setLive(boolean)) | | | | | (✔) |\n| [Logo URI (\\*)](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setLogoUri(android.net.Uri)) | | | | (✔) | |\n| [Logo Content Description (\\*)](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setLogoContentDescription(java.lang.String)) | | | | (✔) | |\n| [Offer Price](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setOfferPrice(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Poster Art Aspect Ratio](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setPosterArtAspectRatio(int)) | ✔ | ✔ | ✔ | ✔ | ✔ |\n| [Poster Art URI](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setPosterArtUri(android.net.Uri)) | ✔ | ✔ | ✔ | ✔ | ✔ |\n| [Preview Audio URI](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setPreviewAudioUri(android.net.Uri)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Preview Video URI](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setPreviewVideoUri(android.net.Uri)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Release Date](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setReleaseDate(java.lang.String)) | (✔) | (✔) | | | |\n| [Short Description](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setDescription(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Starting Price](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setStartingPrice(java.lang.String)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Thumbnail Aspect Ratio](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setThumbnailAspectRatio(int)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Thumbnail URI](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setThumbnailUri(android.net.Uri)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Title](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setTitle(java.lang.String)) | ✔ | ✔ | ✔ | ✔ | ✔ |\n| [Video Height](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setVideoHeight(int)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Video Width](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setVideoWidth(int)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n| [Weight](/reference/androidx/tvprovider/media/tv/PreviewProgram.Builder#setWeight(int)) | (✔) | (✔) | (✔) | (✔) | (✔) |\n\n| **(\\*) Notes:** LOGO_CONTENT_DESCRIPTION is required when LOGO_URI is used."]]