Un altro modo per risolvere una risorsa multimediale è con MediaPlayerItemLoader. Questa opzione è utile quando si desidera ottenere informazioni su un particolare flusso multimediale senza creare un'istanza di MediaPlayer.
Attraverso il MediaPlayerItemLoader
, è possibile scambiare una risorsa multimediale con la MediaPlayerItem
senza associare una visualizzazione a un MediaPlayer
che porterebbe all'allocazione delle risorse hardware di decodifica video. Il processo di ottenimento MediaPlayerItem
l'istanza è asincrona.
Implementare MediaPlayerItemLoader.LoaderListener
interfaccia di callback.
Questa interfaccia definisce due metodi:
LoaderListener.onError
funzione di callback
TVSDK utilizza questa funzione per informare l’applicazione che si è verificato un errore. TVSDK fornisce un codice di errore come parametri e una stringa di descrizione che contiene informazioni di diagnostica.
LoaderListener.onError
funzione di callback
TVSDK utilizza questo per informare l’applicazione che le informazioni richieste sono disponibili sotto forma di MediaPlayerItem
istanza passata come parametro al callback.
Registra questa istanza in TVSDK trasmettendola come parametro al costruttore del MediaPlayerItemLoader
.
Chiamata MediaPlayerItemLoader.load
, passaggio di un'istanza di un MediaResource
oggetto.
L’URL del MediaResource
L'oggetto deve puntare al flusso per il quale si desidera ottenere informazioni. Ad esempio:
// instantiate the listener interface
MediaPlayerItemLoader.LoaderListener _itemLoaderListener =
new MediaPlayerItemLoader.LoaderListener() {
@Override
public void onError(MediaErrorCode mediaErrorCode, String description) {
// something went wrong - look at the error code and description
}
@Override
public void onLoadComplete(MediaPlayerItem playerItem) {
// information is available - look at the data in the "playerItem" object
}
}
// instantiate the MediaPlayerItemLoader object (pass the listener as parameter)
MediaPlayerItemLoader itemLoader = new MediaPlayerItemLoader(_itemLoaderListener);
// create the MediaResource instance and set the URL to point to the actual media stream
MediaResource mediaResource =
MediaResource.createFromUrl("https://test.com/test_media.m3u8", null);
// load the media resource
itemLoader.load(mediaResource);