1

vimeo API でこれが許可されているかどうかはわかりません。

私はこのhtmlコードを持っています:

  <iframe id="vm-player"
      src="http://player.vimeo.com/video/27855315?api=1&player_id=vm-player" 
      frameborder="0" 
      webkitAllowFullScreen mozallowfullscreen allowFullScreen>
  </iframe>

そして、Vimeo の froogaloop.js を使用した次の JavaScript コードがあります。

  var iframe = $('#vm-player')[0];
  var vmPlayer = $f(iframe);
  function ready(player_id) {
    // Keep a reference to Froogaloop for this player
    var vmPlayer = $f(player_id);
  }

  $(window).bind('ready', function() {
      //Attach the ready event to the iframe
      $f(document.getElementById('vm-player')).addEvent('ready', ready);
    });

この後 を呼び出すと、vmPlayer.api('play');動作します。しかし、JavaScript を使用して iframe の src 属性を変更した後、vmPlayer.api() 呼び出しは何もしません。どういうわけかプレーヤーへの参照を失っているようです。これは、jQuery を使用して src 属性を変更する方法です。

  function playVmVideo(id) {
    $('#vm-player').attr('src',
                         'http://player.vimeo.com/video/'
                         + id + '?api=1&player_id=vm-player');
    vmPlayer.api('play');
  }
4

1 に答える 1

3

これが役立つかどうかはわかりませんが.prop()、attr の代わりに関数を使用してみてください。リロードのトリガーに役立つ場合があります。もう 1 つは、iframe でイベント コールバックを使用して、いつ読み込まれたかを検出することです。src をリセットした直後に api 関数を呼び出すため、おそらく読み込まれていません。そのための機能は$('#vm-player').load(function(e) { vmPlayer.api('play'); });

そのロード機能が機能しない場合、それは jQuery のロードが 2 回起動することが知られているためです。空の状態で 1 回、真の最終ロードで 1 回。これが当てはまり、問題が発生する場合は、裸の js ウィンドウ処理に入る必要があるかもしれません。おそらくこれが好きですが、保証はありませんdocument.getElementById('iFrameID').contentWindow.onload(function() {vmPlayer.api('play');});

于 2013-05-15T23:27:17.917 に答える