0

4つのビデオ要素を含むWebページがあります。それらの要素に対してタッチイベントを明示的にトリガーするまで、それらの要素はメタデータのロードを開始しないことを知っています。たとえば、BUTTON要素のタッチイベントにイベント処理関数を接続して、4つのVIDEO要素すべての「play」メソッドが呼び出されるようにすることはできますか?

私はこれらの線に沿って何かを意味します:

$b1.bind("touchstart", function (e) {
    $v1.get(0).play();
    $v1.get(0).pause();
    $v2.get(0).play();
    $v2.get(0).pause();
    $v3.get(0).play();
    $v3.get(0).pause();
    $v4.get(0).play();
    $v4.get(0).pause();
});

これを試してみると、4つの別々のQuickTimeウィンドウがフルスクリーンビデオで開きます。それは私が望む効果ではありませんが、少なくとも4つすべてをハンドラーにフックすることができます。ただし、問題は、$ v4のみが実際に何かのロードを開始し、他の3つは明らかにロードを開始しないことです。

4

2 に答える 2

0

一度に複数のビデオを開始することはできません。iOS でビデオを開始するたびに、現在実行中のビデオが停止します。これは、すべてのモバイル Apple デバイスにおけるパフォーマンスの制限です。同じ理由で、このpreload属性は現在の iOS デバイスには関係ありません。

ビデオをインラインにしたいと思いますか?次に、各要素webkit-playsinlineに属性として追加します。<video>

<video src="myvideo.mp4" webkit-playsinline controls>

そうすれば、4 つのビデオ要素を隣り合わせに配置し、ネイティブ ビデオ コントロールを使用できます (たとえば、後でネイティブ フルスクリーンに切り替えることができます)。独自のコントロールを実装する場合は、controls属性を省略してください。

PS: 0x60 のリンクをフォローアップすると、 iOS 固有の考慮事項というセクションが見つかります。

于 2012-02-08T10:34:45.430 に答える
-1

これをチェックしましたか?コードを次のように設定する<video preload="automatic" />と、プリロードされます。

于 2012-02-07T21:18:38.190 に答える