ugrás a tartalomhoz

Video lejátszási idő (teljes) kinyerése-2

kovzoli · 2016. Dec. 9. (P), 02.48
Már azt hittem, minden rendben van, a teljes lejátszási időt ki tudom írni a honlapra, de ahhoz, hogy az adatot feldolgozni tudjam minimum egy változóba be kell olvasnom.

A video - hoz rendelt eseménykezelő függvénye ( a durationchange eseményt figyeli) viszont másképp kezeli a lokális változókat, mint egy rendes függvény. Azaz ebből a függvényből a globális változók csak olvasásra nyithatók meg, a tartalmukat nem tudom megváltoztatni. A window.status is csak addig őrzi meg az értéket, amíg az eseménykezelő függvényen belül van a végrehajtás. Ha egy Id-vel azonosított <p -be íratom ki, kiírja, de visszaolvasni csak a függvényen belül tudom, azon kívül üres értékkel tér vissza. Félmegoldás, ha cooki-ként rögzítem, mert az oldal kétszeres újraindítása után (F5, F5) jelenik meg az érték, nyilván akkor, amikor a szerver a klienstől visszakapja. Form elemek value értékének sem tudtam átadni.
Biztos vagyok benne, hogy kinyerhető az adat feldolgozáshoz, csak még azt nem tudom, hogyan. Ha tudtok, segítsetek
Kováts Zoli
 
1

Tudnál kódot mutatni?

Poetro · 2016. Dec. 9. (P), 12.25
Nem tudom pontosan, mit értesz azon, hogy másképp kezeli a lokális változókat. Tudnál kódot mutatni?

Az én példámban teljesen jól viselkedik.
2

A példakód:

kovzoli · 2016. Dec. 9. (P), 21.05
Az alábbi példakód egy az apache munkakönyvtárában lévő teszt könyvtárba elhelyezett index.html állomány, és az amellé másolt 8 perc 39 másodperces film.mp4 állománnyal dolgozik
<doctype html>
<html>
<head>
<title> </title>
<meta charset="utf-8">
</head>
<body>
<center>

<video src="/teszt/film.mp4" id="video" preload="metadata" controls autoplay ></video><br>
<script>

function jatido(jatekido){
    maxjatekido=jatekido;
    }
// A film 8 perc 39 s hosszú, a játékidőnek 519 s -nak kell lenie 
uzenet="A játékidő: ";  
maxjatekido=0;
// az alábbi függvény átírja a 0-át 120-ra
jatido(120);

var video = document.getElementById("video");
video.addEventListener("durationchange", function() {    
    document.getElementById("uzen").innerHTML=uzenet;
    leido=video.duration.toString();
    // kiírja a max játékidőt
    document.getElementById("jido").innerHTML=leido; 
    // átírom a globális változót
    jatido(leido);
    //  Az innen hívott függvény   
    // látszólag átírta, mert alább azt íratom ki
    document.getElementById("jido2").innerHTML="A max játékidő="+maxjatekido;
}, true);
  
  document.writeln(video.src);
  document.writeln("<br>");

</script>
<p>
  <button type="button" onclick="video.play();">Play</button>
  <button type="button" onclick="video.pause();">Pause</button>
  <button type="button" onclick="video.currentTime = 0;"><< Rewind</button>
</p>

</center>

</table>

<p> Lábléc </p>
<p id="uzen">Eredetileg uzen</p>
<p id="jido">eredetileg jido</p>
<p id="jido2">eredetileg jido2</p>
<p id="uzen2">eredetileg uzen2</p>
<p id="jido3">Eredetileg jido3</p>
<p>Writeln kiírások</p>
<script>
document.getElementById("uzen2").innerHTML="A maximális játékidő a függvényen kívülről=";
document.getElementById("jido3").innerHTML=maxjatekido;
// A maxjatekido globális változó tartalma: 120
document.writeln("A maximális játékidő: ");
document.writeln(maxjatekido);
document.writeln("<br>");
//  a jido azonosítójú paragrafusból nem lehet visszaolvasni 
// az eseménykezelőből kiírt értéket
maxjatekido=document.getElementById("jido").innerHTML;
document.writeln("A maximális játékidő: ");
document.writeln(maxjatekido);
</script>
</body>
</html>
3

kódszín

Pepita · 2016. Dec. 10. (Szo), 15.27
Légyszi használd, kiég a szeme aki át nézné...
4

jido !== jido3

Poetro · 2016. Dec. 10. (Szo), 22.05
jido !== jido3