使用MediaPlayerItemLoader載入媒體資源

上次更新: 2023-09-21

解析媒體資源的另一種方法是使用MediaPlayerItemLoader。 如果您想要取得特定媒體資料流的相關資訊,但不具現化MediaPlayer執行個體,這會很有用。

透過 MediaPlayerItemLoader 類別中,您可以交換媒體資源以取得對應的 MediaPlayerItem 而不將檢視附加至 MediaPlayer 執行個體,這會配置視訊解碼硬體資源。 取得「 」的程式 MediaPlayerItem 執行個體為非同步。

  1. 實作 MediaPlayerItemLoader.LoaderListener 回呼介面。

    此介面會定義兩種方法:
    
    • LoaderListener.onError 回呼函式

      TVSDK會使用此功能,通知您的應用程式已發生錯誤。 TVSDK提供錯誤碼作為引數,以及包含診斷資訊的說明字串。

    • LoaderListener.onError 回呼函式

      TVSDK會使用此資訊來通知您的應用程式,要求資訊可以以下列形式提供: MediaPlayerItem 作為引數傳遞給callback的例項。

  2. 將此執行個體當作引數傳遞至的建構函式,以註冊至TVSDK。 MediaPlayerItemLoader.

  3. 呼叫 MediaPlayerItemLoader.load,傳遞的例項 MediaResource 物件。

    的URL MediaResource 物件必須指向您要取得資訊的資料流。 例如:

    // 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);
    

此頁面上的