JS経由でビデオソースを変更しようとしています。それはほとんどの作業です。Mediaelement.js:ポスター画像を変更するにはどうすればよいですか?
var basename = "video/whatever";
$("#myvideo")[0].setSrc([
{type: "video/mp4", src: basename + ".mp4"},
{type: "video/webm", src: basename + ".webm"},
{type: "video/ogg", src: basename + ".ogv"}
]);
だから、最初の問題:私は、ソースを変更したときに一時停止ボタンではなく遊びよりも示しており、大きなオーバーレイ再生ボタンは、それが一時停止されているにもかかわらず、表示されません。 setSrc呼び出しの前後にstop()とpause()とsetCurrentTime(0)のさまざまな組み合わせを送信しようとしましたが、運はありません。
もっと重要な問題:私はビデオのポスター画像を変更する方法を見つけていません。私はFlash/Silverlightのフォールバックについても更新したいので、APIのメソッドを変更することを期待していました。私はビデオ要素上のポスター属性を変更しようとしましたが、それはそれを行うようには見えません。
'setTimeout'遅延が必要なのですか、または単にブラウザにとって「いいですか」ですか? (そしてあなたは 'border:0;'を2回言っています)。これはうまくいくはずです。私が質問を書いたとき、私はポスター画像がFlash/Silverlight(HTMLビデオが利用できないとき)の一部であり、HTMLを置き換えることは役に立たないと思ったと思う。しかし今、私はそれがHTML要素であり、Flash/Silverlightではないというのは当たり前のことです。それを確認できますか? (これは私が必要としたプロジェクトが長くなくなったことです) – tremby
ありがとう、私は重複した 'border:0;'を削除するように編集しました。 'setTimeout'がなければ、pauseメソッドはソースが変更される前に完全に実行しレンダリングする時間がないことがわかりました。 'setTimeout'を持つことで、その中のすべてがレンダリング/再描画タスクの後にブラウザ実行キューに追加されるので、大きな再生ボタンが正しく表示されるはずです。 –