कास्ट फ़्रेमवर्क से, सूची बनाने वाली क्लास की सुविधा मिलती है. इन क्लास की मदद से सूचियां बनाई जा सकती हैं
MediaQueueItem
में से
इंस्टेंस, जिन्हें वीडियो या ऑडियो जैसे MediaInfo
इंस्टेंस से बनाया जा सकता है
स्ट्रीम, रिसीवर पर क्रम से चलाने के लिए. कॉन्टेंट आइटम की यह सूची
बदलाव किया जा सकता है, उनका क्रम बदला जा सकता है, और उन्हें अपडेट किया जा सकता है.
पैसे पाने वाले का SDK टूल, सूची बनाए रखता है और सूची में कम से कम एक आइटम तब तक चालू रहेगा, जब तक सूची में कम से कम एक आइटम चालू है (चलाया जा रहा है या रोका गया). पैसे भेजने वाले लोग, सेशन में शामिल हो सकते हैं और सूची में आइटम जोड़ सकते हैं. पाने वाला सूची में मौजूद आइटम के लिए तब तक सेशन बनाए रखता है, जब तक आखिरी आइटम प्लेबैक पूरा नहीं कर लेता या जब भेजने वाला व्यक्ति वीडियो चलाना बंद कर देता है और सेशन को खत्म कर देता है, तब तक रिसीवर पर एक नई सूची लोड करता है. पाने वाले किसी भी समय, डिफ़ॉल्ट रूप से, खत्म हो चुकी सूचियों के बारे में जानकारी. सूची में आखिरी आइटम के बाद मीडिया सेशन खत्म होने के बाद, सूची भी अपने-आप खत्म हो जाती है.
मीडिया सूची आइटम बनाएं और लोड करें
मीडिया क्यू आइटम को Cast फ़्रेमवर्क में इस तरह दिखाया जाता है:
MediaQueueItem
इंस्टेंस.
अगर मीडिया प्लेयर (मीडिया प्लेयर) का इस्तेमाल किया जा रहा है) पर, मीडिया सूची में आइटम बनाते समय
लाइब्रेरी के लिए:
पहले से लोड होने में लगने वाला समय ताकि प्लेयर मीडिया सूची में मौजूद आइटम को पहले बफ़र कर सके
सूची में उससे आगे मौजूद आइटम ने उसे पूरा चलाया. आइटम के अपने-आप चलने की सुविधा सेट करना
सही एट्रिब्यूट का इस्तेमाल करके, रिसीवर इसे अपने-आप चला सकता है. उदाहरण के लिए, मीडिया सूची का आइटम बनाने के लिए, बिल्डर पैटर्न का इस्तेमाल इस तरह किया जा सकता है:
val queueItem: MediaQueueItem = MediaQueueItem.Builder(mediaInfo) .setAutoplay(true) .setPreloadTime(20.0) .build()
MediaQueueItem queueItem = new MediaQueueItem.Builder(mediaInfo) .setAutoplay(true) .setPreloadTime(20) .build();
सूची में मौजूद मीडिया की सूची में मौजूद अलग-अलग आइटम के कलेक्शन को लोड करने के लिए, सही विकल्प का इस्तेमाल करें
queueLoad
RemoteMediaClient
का तरीका.
मीडिया सूची से जुड़े अपडेट पाएं
जब कॉन्टेंट पाने वाला व्यक्ति मीडिया सूची में मौजूद किसी आइटम को लोड करता है, तब वह आइटम को एक यूनीक आईडी असाइन करता है
जो सेशन के कुल समय (और सूची की समयसीमा) तक बनी रहती है. आपका
ऐप्लिकेशन फ़िलहाल लोड हो रहे आइटम के हिसाब से, सूची की स्थिति जान सकता है
(ऐसा हो सकता है कि वह चल न रहा हो), लोड हो रहा हो या पहले से लोड हो चुका हो. कॉन्टेंट बनाने
MediaStatus
क्लास में इस स्थिति की जानकारी मिलती है:
getPreloadedItemId()
तरीका - अगर अगला आइटम पहले से लोड किया गया है, तो पहले से लोड किया गया आइटम आईडी दिखाता है.getLoadingItemId()
विधि - उस आइटम का आइटम आईडी देता है जो वर्तमान में लोड हो रहा है (लेकिन सूची में है).getCurrentItemId()
विधि - उस आइटम की आइटम आईडी देता है जो सूची में सक्रिय था (यह ऑडियो या वीडियो चल नहीं रहा होगा.getQueueItems()
(इस्तेमाल नहीं किया जा सकता. इसके बजाय,MediaQueue
का इस्तेमाल करें) मेथड -MediaQueueItem
इंस्टेंस की सूची को, बदलाव न की जा सकने वाली सूची के तौर पर दिखाता है.
आपका ऐप्लिकेशन इसका इस्तेमाल करके भी आइटम की सूची पा सकता है:
MediaQueue
क्लास. क्लास, मीडिया सूची का खास डेटा मॉडल है. यह सूची में आइटम आईडी की सूची रखता है, जो रिसीवर के साथ अपने-आप सिंक हो जाती है.
MediaQueue
में
MediaQueueItem
क्योंकि क़तार बहुत लंबी होने पर इसमें बहुत ज़्यादा मेमोरी लग जाएगी. इसके बजाय,
मांग पर आइटम फ़ेच करता है और करीब LruCache
रहता है
हाल ही में ऐक्सेस किए गए आइटम. मीडिया सूची को ऐक्सेस करने के लिए, इन तरीकों का इस्तेमाल किया जा सकता है:
getItemIds()
तरीका - क्रम में मौजूद सभी आइटम आईडी की सूची दिखाता है.getItemAtIndex()
तरीका - किसी इंडेक्स पर कैश मेमोरी में सेव किया गया आइटम दिखाता है. अगर आइटम को कैश मेमोरी में सेव नहीं किया जाता है,MediaQueue
,null
लौटाएगा और आइटम को फ़ेच करने के लिए शेड्यूल करेगा. जब आइटम फ़ेच किया गया,MediaQueue.Callback#itemsUpdatedAtIndexes()
कॉल किया जाएगा और उसी आईडी सेgetItemAtIndex()
को फिर से कॉल किया जाएगा आइटम लौटाना.fetchMoteItemsRelativeToIndex()
का इस्तेमाल तब किया जाता है, जब उपयोगकर्ता सूची के यूज़र इंटरफ़ेस (यूआई) को सबसे ऊपर या सबसे नीचे तक स्क्रोल करता है, और आपका ऐप्लिकेशन क्लाउड से और आइटम फ़ेच करना चाहता है.
अपने
सूची में मौजूद आइटम और सूची की स्थिति के बारे में जानकारी देने वाला ऐप्लिकेशन. इसके अलावा
रिसीवर से मीडिया की स्थिति अपडेट होती है, आपका ऐप्लिकेशन
लागू करने की सूची
RemoteMediaClient.Callback
और
MediaQueue.Callback
.
साथ ही, Cast SDK में सूची में रखने के लिए यूआई बनाने के लिए दो यूटिलिटी क्लास दी जाती हैं.
MediaQueueRecyclerViewAdapter
,RecyclerView
के डेटा का बैक अप लेने के लिएMediaQueueListAdapter
,ListAdapter
के डेटा का बैक अप लेने के लिए.
उदाहरण के लिए, MediaQueueRecyclerViewAdapter
का इस्तेमाल करके RecyclerView
बनाने के लिए:
class MyRecyclerViewAdapter(mediaQueue: MediaQueue?) : MediaQueueRecyclerViewAdapter<MyViewHolder?>(mediaQueue) { override fun onBindViewHolder(holder: MyViewHolder, position: Int) { val item = getItem(position) // Update the view using `item`. ... } } class MyViewHolder : RecyclerView.ViewHolder { // Implement your own ViewHolder. ... } fun someMethod() { val adapter = MyRecyclerViewAdapter( mCastSession.remoteMediaClient.getMediaQueue()) val recyclerView = activity.findViewById(R.id.my_recycler_view_id) as RecyclerView recyclerView.adapter = adapter }
public class MyRecyclerViewAdapter extends MediaQueueRecyclerViewAdapter<MyViewHolder> { public MyRecyclerViewAdapter(MediaQueue mediaQueue) { super(mediaQueue); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { MediaQueueItem item = getItem(position); // Update the view using `item`. ... } } public class MyViewHolder implements RecyclerView.ViewHolder { // Implement your own ViewHolder. ... } public void someMethod() { RecyclerView.Adapter adapter = new MyRecyclerViewAdapter( mCastSession.getRemoteMediaClient().getMediaQueue()); RecyclerView recyclerView = (RecyclerView) getActivity().findViewById(R.id.my_recycler_view_id); recyclerView.setAdapter(adapter); }
सूची में बदलाव करना
सूची में मौजूद आइटम पर काम करने के लिए,
RemoteMediaClient
क्लास. इनसे आपको आइटम के कलेक्शन को नई सूची में लोड करने और आइटम को सूची में
मौजूदा सूची, सूची में मौजूद आइटम की प्रॉपर्टी अपडेट करें, आइटम बनाएं
सूची में आगे या पीछे जाएं, पंक्ति की सभी प्रॉपर्टी को सेट करें
(उदाहरण के लिए, अगला आइटम चुनने वाले repeatMode
एल्गोरिदम को बदलें),
सूची से आइटम हटाएं और सूची के आइटम का क्रम बदलें.