Spela upp mapp med HTML5-video, loopa i all evighet?

Trädvy Permalänk
Medlem
Registrerad
Maj 2009

Spela upp mapp med HTML5-video, loopa i all evighet?

Hej,

Har ett script som gör att jag kan lägga mp4-filer döpta till video1.mp4 video2.mp4 och så vidare i en mapp, och detta autoplayas på hemsidan.

Problemet är att jag vill loopa alla dessa filer i mappen för alltid. Så när sista klipper är spelat så börjar den på nummer 1 igen.

Skriver jag loop under <video så loopar bara första klippet.

<video id="video" width="100%" autoplay onended="run()">
<source src="video/video1.mp4" type='video/mp4'/>
</video>
<script type='text/javascript'>
video_count =1;
videoPlayer = document.getElementById("video");

function run(){
video_count++;
if (video_count == 4) video_count = 1;
var nextVideo = "video/video"+video_count+".mp4";
videoPlayer.src = nextVideo;
videoPlayer.play();
videoPlayer.loop();
};

</script>

Hur gör jag?

Tack!

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2009
Skrivet av JoQ:

Hej,

Har ett script som gör att jag kan lägga mp4-filer döpta till video1.mp4 video2.mp4 och så vidare i en mapp, och detta autoplayas på hemsidan.

Problemet är att jag vill loopa alla dessa filer i mappen för alltid. Så när sista klipper är spelat så börjar den på nummer 1 igen.

Skriver jag loop under <video så loopar bara första klippet.

<video id="video" width="100%" autoplay onended="run()">
<source src="video/video1.mp4" type='video/mp4'/>
</video>
<script type='text/javascript'>
video_count =1;
videoPlayer = document.getElementById("video");

function run(){
video_count++;
if (video_count == 4) video_count = 1;
var nextVideo = "video/video"+video_count+".mp4";
videoPlayer.src = nextVideo;
videoPlayer.play();
videoPlayer.loop();
};

</script>

Hur gör jag?

Tack!

Ett alternativ är att räkna ut numret på videon med modulo.
Ha videosarna som 0,1,2,3
Så PlayVideo = video_count % 4 om du har 4 videos.
Video_count : PlayVideo
1:1
2:2
3:3
4:0
5:1
6:2
7:3
8:0

Osv osv

Trädvy Permalänk
Medlem
Registrerad
Maj 2009
Skrivet av NoToes:

Ett alternativ är att räkna ut numret på videon med modulo.
Ha videosarna som 0,1,2,3
Så PlayVideo = video_count % 4 om du har 4 videos.
Video_count : PlayVideo
1:1
2:2
3:3
4:0
5:1
6:2
7:3
8:0

Osv osv

Oj, den förstår jag inte riktigt?
Finns det inget sätt att bara komplettera det som jag har?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2009
Skrivet av JoQ:

Oj, den förstår jag inte riktigt?
Finns det inget sätt att bara komplettera det som jag har?

Ska förklara lite tydligare

Känner du till modulo? Modulo = rest vid heltalsdivision.
Generellt kan en division beskrivas som a/b = c + r. Där r = rest, Ex du kan inte dela 7/4 och få ett heltal, utan du får c=4 och r=3
r kan anta alla värden från 0 t.om b-1 vilket passar till din tillämpning.

Så i ett fall med fyra videos:
Video 1: 1.mp4
Video 2: 2.mp4
Video 3: 3.mp4
Video 4: 0.mp4

Din tidigare kod

function run(){ video_count++; if (video_count == 4) video_count = 1; var nextVideo = "video/video"+video_count+".mp4"; videoPlayer.src = nextVideo; videoPlayer.play(); videoPlayer.loop(); };

Hur du borde kunna göra

function run(){ video_count++; var playVideo = video_count % 4; var nextVideo = "video/video"+playVideo+".mp4"; videoPlayer.src = nextVideo; videoPlayer.play(); videoPlayer.loop(); };

Det som händer i det första fetstilta:
Loop1: video_count = 1. playVideo = 1 % 4 = 1. nextVideo = video/video1.mp4
Loop2: video_count = 2. playVideo = 2 % 4 = 2. nextVideo = video/video2.mp4
Loop3: video_count = 3. playVideo = 3 % 4 = 3. nextVideo = video/video3.mp4
Loop4: video_count = 4. playVideo = 4 % 4 = 0. nextVideo = video/video0.mp4
Loop5: video_count = 5. playVideo = 5 % 4 = 1. nextVideo = video/video1.mp4

och så fortsätter det så allt eftersom video_count ökar

Note:Vet inte om du ska deklarera playVideo inne i funktionen eller inte.

Dock så måste du justera "4" i detta fall efter antalet videos och byta namn på videon med "0" om ordningen spelar roll när du lägger till fler videos

-------------------------------------------------
EDIT eller så läste jag helt tokigt och ditt egentliga problem är att få metoden att loopa

video_count++; if (video_count == 4) video_count = 1; var nextVideo = "video/video"+video_count+".mp4";

Det som händer här, är att du ändrar värdet på video count innan du spelar up den. Så sökvägen kommer att bli "video/video1.mp4" innan video4 har spelats

Trädvy Permalänk
Medlem
Registrerad
Maj 2009

@NoToes: Ja, scriptet jag har fungerar klockrent. Tills dess att alla klipp är spelade. Då är det bara svart. Vill att den börjar från början efter sista klippet är spelat.
Loopen jag har lagt in på test loopar bara första klippet om och om igen.