0

私が取り組んでいるビデオ ストリーミング アプリでは、listTemplate からビデオの年を選択できます。各年は、ビデオ リソースへのリンクを含む catalogTemplate です。listTemplate と catalogTemplate の間のナビゲーションは正常に機能しますが、catalogTemplates の 1 つからビデオを選択すると、ビデオは前景ではなく、テンプレートの後ろで再生されます。このようなナビゲーション スタック エラーと思われるものを修正するにはどうすればよいですか? 以下は、Apple のドキュメントから部分的に抜粋した、実際に内容を提示するために使用するコードです。

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);
                      }
                  }
              }
          );
      }
  },
4

1 に答える 1

0

1 つのアイデア:templateURLはまだ有効なアドレスを指しているため、表示されている関数の下部はビデオにオーバーレイを直接追加しますか?

videoURL2 つのオプション ( 、 )のうち 1 つだけが設定されていることを確認 (または確認) しますtemplateURL。または、以前に何も表示されloadResource()なかった場合にのみ、その部分を実行しvideoURLます。お気に入り...

if(videoURL) {
    ...
} else if (templateURL) {
    ...
}
于 2016-01-18T19:35:36.847 に答える