2016-01-14 46 views
0

我有一個視頻流應用程序,我正在處理這個問題,可以讓我從listTemplate中選擇一年的視頻,其中每年都是一個catalogTemplate,其中包含指向視頻資源的鏈接。 listTemplate和catalogTemplate之間的導航可以正常工作,但是當我從其中一個catalogTemplates中選擇一個視頻時,視頻會在後面播放而不是前景。我怎樣才能解決我認爲是這樣的導航堆棧錯誤?以下是我用來實際呈現內容的代碼,部分來自Apple的文檔。tvOS:視頻播放器沒有推到導航堆棧頂部

load: function(event) { 
     console.log(event); 

     var self = this, 
      ele = event.target, 
      templateURL = ele.getAttribute("template"), 
      presentation = ele.getAttribute("presentation"), 
      videoURL = ele.getAttribute("videoURL"); 

     if(videoURL) { 
     //2 
     var player = new Player(); 
     var playlist = new Playlist(); 
     var mediaItem = new MediaItem("video", videoURL); 

     player.playlist = playlist; 
     player.playlist.push(mediaItem); 
     player.present(); 
     }; 

     /* 
     Check if the selected element has a 'template' attribute. If it does then we begin 
     the process to present the template to the user. 
     */ 
     if (templateURL) { 
      /* 
      Whenever a user action is taken you need to visually indicate to the user that 
      you are processing their action. When a users action indicates that a new document 
      should be presented you should first present a loadingIndicator. This will provide 
      the user feedback if the app is taking a long time loading the data or the next 
      document. 
      */ 
      self.showLoadingIndicator(presentation); 

      /* 
      Here we are retrieving the template listed in the templateURL property. 
      */ 
      resourceLoader.loadResource(templateURL, 
       function(resource) { 
        if (resource) { 
         /* 
         The XML template must be turned into a DOMDocument in order to be 
         presented to the user. See the implementation of makeDocument below. 
         */ 
         var doc = self.makeDocument(resource); 

         /* 
         Event listeners are used to handle and process user actions or events. Listeners 
         can be added to the document or to each element. Events are bubbled up through the 
         DOM heirarchy and can be handled or cancelled at at any point. 

         Listeners can be added before or after the document has been presented. 

         For a complete list of available events, see the TVMLKit DOM Documentation. 
         */ 
         doc.addEventListener("select", self.load.bind(self)); 
         // doc.addEventListener("highlight", self.load.bind(self)); 


         /* 
         This is a convenience implementation for choosing the appropriate method to 
         present the document. 
         */ 
         if (self[presentation] instanceof Function) { 
          self[presentation].call(self, doc, ele); 
         } else { 
          self.defaultPresenter.call(self, doc); 
         } 
        } 
       } 
     ); 
     } 
    }, 

回答

0

一個想法:templateURL仍然是指向一個有效的地址,因此您的顯示功能的下部將覆蓋直接添加到您的視頻?

驗證(或確保)只有兩個選項(videoURLtemplateURL)中的一個設置。或者只運行loadResource()部分,前提是沒有看到videoURL。像...

if(videoURL) { 
    ... 
} else if (templateURL) { 
    ... 
} 
相關問題