簡體   English   中英

設置Chromecast自定義接收器媒體播放器的樣式

[英]Styling Chromecast Custom Receiver Media Player

我正在使用Media Player庫來投射我的HLS流,並試圖對其進行樣式設置。 我想在加載動畫之前放動畫。這是我在媒體管理器的onLoad方法中所做的;

  window.onload = function ()
  {
     mediaElement = document.querySelector('video');
     mediaElement.autoplay = true;
     ...
  }

 mediaManager.onLoad = function (event)
 {
  var title = event.data['media']['metadata']['title'];

  var titleElement = this.receiverelement.querySelector('.media-title');
  videoplayer.setInnerText_(titleElement, title);

  var subtitle = event.data['media']['metadata']['subtitle'];
  var subtitleElement = this.receiverelement.querySelector('.media-subtitle');
  videoplayer.setInnerText_(subtitleElement, subtitle);

  var artwork = videoplayer.getValue_(event.data, ['media', 'metadata',
      'images', 0, 'url']);
  var artworkElement = this.receiverelement.querySelector('.media-artwork');
  videoplayer.setBackgroundImage_(artworkElement, artwork);

  var autoplay = videoplayer.getValue_(event.data, ['autoplay']);
  var contentId = videoplayer.getValue_(event.data, ['media', 'contentId']);
  var contentType = videoplayer.getValue_(event.data, ['media', 'contentType']
      );
  this.videoType(contentType);
  this.currentState(videoplayer.State.LOADING, false);
  this.videoElement.autoplay = autoplay || true;
  this.videoElement.src = contentId || '';
  if (event.data['media'] && event.data['media']['contentId']) {
    var url = event.data['media']['contentId'];
    var mediaHost = new cast.player.api.Host({
                    'mediaElement': this.videoElement,
                    'url': url
               });

    mediaHost.onError = function (errorCode) {
        console.error('### HOST ERROR - Fatal Error: code = ' + errorCode);

        if (mediaPlayer !== null) {
                        mediaPlayer.unload();
        }
    }

    var initialTimeIndexSeconds = event.data['media']['currentTime'] || 0;
    var protocol = null;
    var parser = document.createElement('a');
    parser.href = url;   

    var ext = ext = parser.pathname.split('.').pop();
    if (ext === 'm3u8') {
         protocol =  cast.player.api.CreateHlsStreamingProtocol(mediaHost);
    } else if (ext === 'mpd') {
         protocol = cast.player.api.CreateDashStreamingProtocol(mediaHost);
    } else if (ext === 'ism/') {
          protocol = cast.player.api.CreateSmoothStreamingProtocol(mediaHost);
    }
    console.log('### Media Protocol Identified as ' + ext);  

    if(protocol == null)
    {
        this.load.bind(this);
    }
    else
    {
        mediaPlayer = new cast.player.api.Player(mediaHost);
        mediaPlayer.load(protocol, initialTimeIndexSeconds);
    }

  }

我仍在使用Media Player庫(DRM需要它)嗎? videoElement變量引用HTML中的視頻標簽。 在媒體管理器的onload函數中,我將其源設置為視頻URL。 這樣,我是否仍在使用媒體播放器庫,是否仍可以為DRM等設置licenseURL? 如果沒有,如何設置媒體播放器的樣式?

樣式媒體接收器也使用MPL。 如果許可證URL嵌入在清單中,則它應適用於DRM​​。 如果您需要任何類型的身份驗證,則需要創建一個自定義接收器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM