◆ 修正◇動画プレイヤー ◆
当ブログの動画プレイヤーですが、今年の4月にFlashからHtML5に変更しました。どうもそれ以来、動画が再生できないケースが発生しているようなのです。ロゴが表示されたままだそうです。
調べてみたところ、ローカルストレージをオフにしているとエラーが発生しスクリプトが止まってしまうことが判明。そのせいで、ロゴ画面から先に進めなかったわけですね。
いや、ローカルストレージが使えるかどうかは常にチェックしていたのですが、どうも僕のやり方だとそれでもエラーは免れないようで……。なので、チェックの方法を変えた次第です。
そもそもローカルストレージとはなんぞ? 簡単に言うと、Cookieの進化版とでもいいますか。詳しくはこちらに丸投げ(笑)
当動画プレイヤーの場合、最後に再生した動画のIDやボリューム情報を格納しています。なぜ最後に再生した動画を記録するのかと言うと、一言で言えば再生制御のためです。
例えばこの記事のように、記事内に複数の動画が存在している場合。ある動画を再生中に、他の動画を再生したとします。すると、両方の動画が再生されることになります。
それを防ぐには、見ている動画を止めてから別の動画を再生しなくてはなりません。が、いちいち面倒臭いですよね。別の動画が再生されたら、それまで見ていた動画は自動的に止まってほしい。
その方法はいくつかあると思いますが、僕はローカルストレージを使用することにしました。
以下が動画再生時の内部処理の流れです。
今回の修正でローカルストレージをオフにしていても再生は可能となりますが、以上のような処理はなされませんのでご了承ください。
調べてみたところ、ローカルストレージをオフにしているとエラーが発生しスクリプトが止まってしまうことが判明。そのせいで、ロゴ画面から先に進めなかったわけですね。
いや、ローカルストレージが使えるかどうかは常にチェックしていたのですが、どうも僕のやり方だとそれでもエラーは免れないようで……。なので、チェックの方法を変えた次第です。
そもそもローカルストレージとはなんぞ? 簡単に言うと、Cookieの進化版とでもいいますか。詳しくはこちらに丸投げ(笑)
当動画プレイヤーの場合、最後に再生した動画のIDやボリューム情報を格納しています。なぜ最後に再生した動画を記録するのかと言うと、一言で言えば再生制御のためです。
例えばこの記事のように、記事内に複数の動画が存在している場合。ある動画を再生中に、他の動画を再生したとします。すると、両方の動画が再生されることになります。
それを防ぐには、見ている動画を止めてから別の動画を再生しなくてはなりません。が、いちいち面倒臭いですよね。別の動画が再生されたら、それまで見ていた動画は自動的に止まってほしい。
その方法はいくつかあると思いますが、僕はローカルストレージを使用することにしました。
以下が動画再生時の内部処理の流れです。
ローカルストレージに動画のIDが記録される
↓
ローカルストレージが更新されたので、各プレイヤーにイベントが発生する
↓
イベントを受けて、各プレイヤーはローカルストレージから動画IDを取得
↓
自分が再生している動画IDと等しいか?
↓
Yes(true)なら再生を継続
No(false)なら再生を停止
ざっとこんな感じです。↓
ローカルストレージが更新されたので、各プレイヤーにイベントが発生する
↓
イベントを受けて、各プレイヤーはローカルストレージから動画IDを取得
↓
自分が再生している動画IDと等しいか?
↓
Yes(true)なら再生を継続
No(false)なら再生を停止
今回の修正でローカルストレージをオフにしていても再生は可能となりますが、以上のような処理はなされませんのでご了承ください。