2016-07-01 6 views
1

vielleicht habe ich es gerade falsch, aber ... ich "große" Dateien über Ajax (180 MB - 500 MB) anfordern. Ich dachte, dass ich die Daten mit der Methode URL.createObjectURL abrufen und verwenden kann, während sie tatsächlich lädt? Ich brauche die angeforderten Daten innerhalb von 5 Sekunden, aber es lädt tatsächlich 16 Sekunden.Die angeforderten XHR-Daten beim Laden tatsächlich

  1. Ajax-Request
  2. xhr.onload (arbeitet innerhalb von 5 Sekunden oder schneller, lokal, aber nicht leben)
  3. im onload (oder Fortschritt, onreadystatechange (i versucht)) i verwendet URL.createObjectURL (xhr.response), um die Daten zu erhalten

    var nxtclp = new XMLHttpRequest();

    nxtclp.onload = Funktion() { get_src = URL.createObjectURL (nxtclp.response); that.preloadSource = get_src; };

    nxtclp.open ("GET", "media/vid.mp4"); nxtclp.responseType = "Blob"; nxtclp.send();

Gibt es eine Möglichkeit, während des Ladevorgangs Daten wiederzugeben?

+1

Was in erster Linie Ajax für Mediendatei verwendet, ist Grund für? – charlietfl

+0

gut für einen interaktiven Film ... so bei "90%" des tatsächlichen Clips kommt eine Entscheidung für den Benutzer, wo er wählen kann, wie der Film weitergeht ... wenn er mit den Entscheidungselementen interagiert, weiß ich, was die Datei für den nächsten Clip ist und um einen fließenden Übergang von einem Clip zum anderen im Laden nicht Dateien am Ende des Clips, ich lade dem mit AJAX auf Interaktion mit Entscheidungselementen, so habe ich 6 Sekunden, um die nächste Datei preload - das ist was ich versucht habe. – PhilS

+0

Erklärt immer noch nicht, warum Ajax benötigt wird – charlietfl

Antwort

0

Verwenden autoplay Attribut bei <video> Element

autoplay

Ein boolescher Attribut; Wenn angegeben, beginnt das Video automatisch mit Wiedergabe, sobald dies möglich ist, ohne das Laden der Daten zu beenden.

<video controls autoplay src="http://mirrors.creativecommons.org/movingimages/webm/ScienceCommonsJesseDylan_240p.webm"> 
 
</video>

alternativ mit javascript

var video = document.createElement("video"); 
 
video.autoplay = true; 
 
video.controls = true; 
 
video.onloadedmetadata = (e) => { 
 
    console.log(video.readyState); 
 
    document.body.appendChild(e.path[0]) 
 
} 
 
video.src = "http://mirrors.creativecommons.org/movingimages/webm/ScienceCommonsJesseDylan_240p.webm";
<body> 
 
</body>