2016-05-09 7 views
0

私は、(長さの異なる)上記のビデオを撮影し、それらを一緒にストリングしてプレイリストを作成することにより、ビデオを再生するための「常時オン」な感じを作りたいと思います。ビデオ再生リストのコンテンツプログラミングを作成する

私はビデオが24時間スパンに合っているかそれより長いかどうかを確認しようとしています。これに基づいて、ユーザーが入ったときに、現在のタイムスタンプを使用してビデオ再生リストのその時刻にジャンプします。

例: オブジェクトに5つの動画があります。

{ a: 3.54, b: 8.32, c: 15.23, d: 38.16, e: 68:13} 

次に、これらの期間を秒に変換します。 24時間〜秒= 86400

ページを読み込む際に、現在の時間を秒単位で確認し、ビデオ再生リストのどこまで同期するかを確認してください。私が立ち往生した場所は、プレイリストの総再生時間が86400を超えるとどうなりますか?

その後、24時間にわたり流出に対処し、毎日継続する調整は何でしょうか?

答えて

1

問題は、毎日真夜中にプレイリストを再起動するのと同じような、時刻だけをチェックするという事実に起因しています。これにより、長さが24時間に等しく分割されないプレイリストと、24時間より長いプレイリストの両方で不一致が作成されます。

最も簡単な解決策は、すべてのプレイリストをあたかも過去一定時間以来ループしているかのように扱うことです。

コード例では、開始点として年の初めを選択しましたが、プレイリストが最後に更新されたときにタイムスタンプを使用することもできます。そうすれば、プレイリストを作成または更新した後、最初のビデオで再生を開始し、無限にループします。

コードスニペットを(繰り返し)実行すると、実際の動作を確認できます。

// FIND ELAPSED TIME SINCE START POINT 
 
var then = new Date("January 1, 2016 00:00:00"); // or use playlist creation timestamp 
 
var now = new Date(); 
 
var interval = Math.round((now - then)/1000); 
 
document.write("interval: " + interval + " seconds<br>"); 
 

 
// CALCULATE LENGTH IN SECONDS OF PLAYLIST (IF UNKNOWN) 
 
var playlist = {a: 3.54, b: 8.32, c: 15.23, d: 38.16, e: 68.13}; 
 
var length = 0; 
 
for (var i in playlist) { 
 
    var minutes = Math.floor(playlist[i]); 
 
    var seconds = (minutes * 60) + Math.round((playlist[i] * 100) % 100); 
 
    length += seconds; 
 
} 
 
document.write("length: " + length + " seconds<br>"); 
 

 
// CALCULATE CURRENT POSITION IN PLAYLIST 
 
var position = interval % length; 
 
document.write("position in playlist: " + position + " seconds<br>"); 
 

 
// CALCULATE CURRENT POSITION IN VIDEO 
 
for (var i in playlist) { 
 
    var minutes = Math.floor(playlist[i]); 
 
    var seconds = (minutes * 60) + Math.round((playlist[i] * 100) % 100); 
 
    if (position < seconds) { 
 
     document.write("video: " + i + "<br>position in video: " + position + " seconds"); 
 
     break; 
 
    } 
 
    else position -= seconds; 
 
}

+0

これは絶対に素晴らしいです!ここでの実装が大好きです。特定の時間に基づいてあなたの方法を使用する(最新のものから始めて、最新のものを元にしたアイデアが好き) 私の質問 - もし私が24時間に収まるようにビデオをループするなら(残りの部分は表示されません)、あなたのロジックを使用すると、うまくいくようです。残りの「空の空気」時間は、オフラインの視覚的合図となる。 これは意味がありますか? – Yasir

+0

@ Yasirプレイリストの更新タイムスタンプから間隔を測定してから、「間隔%86400」を使用してプレイリストのどこにいるかを確認できます。これは、最後に更新されたときに毎日プレイリストを再起動するようなものです。位置がプレイリストの終わりを超えている場合は、何らかの種類の「オフエア」メッセージを表示することができます。 – m69

+0

@Yasir長いプレイリストが深夜に演奏を停止することを意味しますか? – m69

関連する問題