SwipeView ( http://cubiq.org/swipeview ) を使用して、タッチスクリーン デバイスでスワイプ可能なスライドショーを作成しています。これは画像で十分簡単ですが、スライドショーに Vimeo ビデオも含めたいと思います。残念ながら、iFrame はスワイプ入力をそれ自体でキャプチャするため (少なくともこれが起こっていると思います)、ビデオ プレーヤーのスライドに到達すると、ページネーションをタップしない限り、スライドから離れることはできなくなります。これは受け入れられません。
私の解決策は、ページのどこかにビデオを隠し (display: none; または height: 0; などを使用)、ビデオの再生をトリガーするクリック イベントでスライドショーの画像を使用することでした。ビデオが非表示になっている場合でも、再生時に全画面表示にして再生する必要があります (少なくとも iPhone では)。
この手法は、デスクトップ ブラウザでテストすると問題なく動作しますが、iPhone ではおかしな動作をします。テスト目的で、ビデオはスライドショーの下に表示されています。ページを読み込んでスライドをタップしても何も起こりません。ただし、実際のビデオ プレーヤーをタップしてビデオを再生すると、ビデオが閉じられると、スライドをタップしてビデオを再度再生できます。基本的に、プレーヤーを介してビデオを再生すると、API を介してビデオを再生できますが、最初にプレーヤーを使用しないと再生できません。
これが私のコードです:
// Append the "hidden" video player to the page
$('.slider-container').append("<div class='mobile-video-slide'><iframe id='slideshow-player' src='//player.vimeo.com/video/81295681?title=0&byline=0&portrait=0&color=8bd4ee&api=1&player_id=slideshow-player' width='500' height='281' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div>");
// Get the player object
var iframe = $('#slideshow-player')[0],
player = $f(iframe);
// When the video is ready
player.addEvent('ready', function() {
// Add the click event to the slide
$('#play-video').on('click', function() {
// Play the video
player.api('play');
// Don't jump the page
return false;
});
});
player.ready イベントが適切に機能していること、および画像のクリック イベントが適切に機能していることをテストで確認しました。問題は完全にplayer.api('play')
通話にあるようです。これを達成するための助け、または別の方法をいただければ幸いです。