Un altro modo per risolvere una risorsa multimediale è con MediaPlayerItemLoader. Questa funzione è utile quando si desidera ottenere informazioni su un particolare flusso multimediale senza creare un'istanza MediaPlayer.
Attraverso la classe MediaPlayerItemLoader
è possibile scambiare una risorsa multimediale per la corrispondente MediaPlayerItem
senza allegare una visualizzazione a un'istanza MediaPlayer
, il che porterebbe all'allocazione delle risorse hardware di decodifica video. Il processo di ottenimento dell'istanza MediaPlayerItem
è asincrono.
Implementa l’interfaccia di callback MediaPlayerItemLoader.LoaderListener
.
Questa interfaccia definisce due metodi:
LoaderListener.onError
funzione di callback
TVSDK lo utilizza per informare l'applicazione che si è verificato un errore. TVSDK fornisce un codice di errore come parametri e una stringa di descrizione contenente informazioni di diagnostica.
LoaderListener.onError
funzione di callback
TVSDK lo utilizza per informare l'applicazione che le informazioni richieste sono disponibili sotto forma di un'istanza MediaPlayerItem
che viene passata come parametro al callback.
Registra questa istanza in TVSDK trasmettendola come parametro al costruttore del MediaPlayerItemLoader
.
Chiama MediaPlayerItemLoader.load
, passando un'istanza di un oggetto MediaResource
.
L'URL dell'oggetto MediaResource
deve puntare al flusso di cui si desidera ottenere le 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);