آهنگ های

برنامه Android TV شما ممکن است از چندین آهنگ صوتی/متن برای زبان های مختلف و تنظیمات صدای فراگیر مانند برنامه های گیرنده وب پشتیبانی کند. برای پشتیبانی از چندین آهنگ و انتخاب آهنگ، باید موارد زیر را در برنامه Android TV خود پیاده سازی کنید:

اطلاعات و وضعیت آهنگ را ارائه دهید

برای MediaInfo سطح بالا، MediaTracks موجود را با استفاده از MediaInfoModifier ارائه دهید:

val mediaInfoModifier = CastReceiverContext.getInstance()
           
.mediaManager.mediaStatusModifier.mediaInfoModifier

mediaInfoModifier
.setMediaTracks(Arrays.asList(
    new
MediaTrack.Builder(1, MediaTrack.TYPE_AUDIO)
       
.setName("English")
       
...
        build
(),
    new
MediaTrack.Builder(2, MediaTrack.TYPE_AUDIO)
       
.setName("Spanish")
       
...
       
.build()
 
))
MediaInfoModifier mediaInfoModifier = CastReceiverContext.getInstance()
   
.getMediaManager().getMediaStatusModifier().getMediaInfoModifier();

mediaInfoModifier
.setMediaTracks(Arrays.asList(
   
new MediaTrack.Builder(1, MediaTrack.TYPE_AUDIO)
       
.setName("English")
       
...
        build
(),
   
new MediaTrack.Builder(2, MediaTrack.TYPE_AUDIO)
       
.setName("Spanish")
       
...
       
.build()
 
));

از MediaTracksModifier برای منعکس کردن آهنگ‌های انتخابی فعلی استفاده کنید:

val mediaStatusModifier: MediaTracksModifier =
     
CastReceiverContext.getInstance()
         
.mediaManager.mediaStatusModifier.getMediaTracksModifer()

MediaTracksModifier.setActiveTrackIds(longArrayOf(1))
MediaTracksModifier mediaStatusModifier =
 
CastReceiverContext.getInstance()
   
.getMediaManager().getMediaStatusModifier().getMediaTracksModifer();

MediaTracksModifier.setActiveTrackIds(new long[]{1});

مراحل بالا می تواند مطمئن شود که گفتگوی انتخاب آهنگ فرستنده وضعیت صحیح را منعکس می کند.

انتخاب مسیر را کنترل کنید

برای پشتیبانی از انتخاب یک آهنگ، ابتدا باید MediaStatus.COMMAND_EDIT_TRACKS به عنوان یک دستور رسانه پشتیبانی شده در MediaStatusModifier اعلام کنید:

CastReceiverContext
   
.getInstance()
   
.getMediaManager()
   
.getMediaStatusModifier()
   
.setMediaCommandSupported(MediaStatus.COMMAND_EDIT_TRACKS, true)
CastReceiverContext
   
.getInstance()
   
.getMediaManager()
   
.getMediaStatusModifier()
   
.setMediaCommandSupported(MediaStatus.COMMAND_EDIT_TRACKS, true);

هنگامی که کاربر آهنگ‌هایی را در گفتگوی انتخاب آهنگ در سمت فرستنده انتخاب می‌کند، برنامه Android TV شما برای تغییر آهنگ‌های انتخابی یک تماس پاسخ دریافت می‌کند. با لغو MediaCommandCallback فرمان را مدیریت کنید:

class MyMediaCommandCallback : MediaCommandCallback() {
 
/** Text selection callback scoped to individual track types.  */
 
override fun onSelectTracksByType(
        senderId
: String?, type: Int, tracks: List
public class MyMediaCommandCallback extends MediaCommandCallback {
 
/** Text selection callback scoped to individual track types. */
 
@Override
 
public Task