Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-01-2012, 17:29   #1 (permalink)
Neuer User
 
Benutzerbild von edomir111111
 
Registriert seit: Jun 2011
Ort: nähe Göttingen
Beiträge: 13
NetStream bricht einfach ab

Hallo an alle,
folgende Problematik "mein" NetStream-Player bricht einfach nach unbestimmter Zeit den "Stream" ab.
Das Video ist sehr groß und ich habe es mit unterschiedlichen Formaten versucht.
Der Film ist als .flv 115 Mb groß und als .mp4 220 Mb groß und hat eine Spielzeit von 10 Minuten.
Local läuft alles perfekt, aber sobald es auf dem Server gestartet wird, bricht er irgendwann einfach ab.
Als wenn einfach kein Datennachschub da wäre.
Ich habe auch schon den Film in ein ganz kleines Format konvertiert mit nur 3 Mb.
Da ist zwar die Filmqualität total im Eimer, aber ich wollte es eben Testen. Trotzdem: er bricht einfach ab.

Ich poste mal den wichtigsten Teil des Script,
in der Hoffnung, dass ein Experte von Euch den Fehler entdeckt oder einen guten Tipp hat.


Code:
var video:Video = new Video(873,490); 
video_mc.addChild(video);
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var metaListener:Object = new Object();
metaListener.onMetaData = theMeta;
ns.client = metaListener;
video.attachNetStream(ns);
ns.play("video1.mp4");
//ns.bufferTime = 5;
ns.addEventListener(NetStatusEvent.NET_STATUS, evHandler);
function evHandler(event:NetStatusEvent):void {
switch (event.info.code) 
    { 
        case "NetStream.Buffer.Empty":
            ns.bufferTime+=1; //eine Sekunde dazu bei Buffer-Underrun
            break; 
    } 
} 

ns.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);

function onStatusEvent(infoObject:Object):void { 

    if (infoObject.info.code=="NetStream.Play.StreamNotFound") { 

               ausgabe2.text = "Video kann nicht geladen werden!"; 

    } else if (infoObject.info.code == "NetStream.Buffer.Full") { 
        trace("Buffer voll");
	
	} else if (infoObject.info.code == "NetStream.Buffer.Empty") { 
        trace("Buffer leer"); 
		
    } else if (infoObject.info.code == "NetStream.Play.Stop") { 
	
	ns.pause(); //nach dem abspielen zurück an den anfang springen und stoppen
    	ns.seek(0);    //nach dem abspielen zurück an den anfang springen und stoppen
	ausgabe2.text = "Ende";
    } 
}


......
.....
....
...
..
.

Hiernach folgen nur noch die Buttonsteuerungen.
Die Bufferzeit habe ich hier auskommentiert, da sie dynamisch geregelt werden soll. (Egal, ob dynamisch, oder gesetzte Buffertime, das Problem bleibt)

Code:
switch (event.info.code) 
    { 
        case "NetStream.Buffer.Empty":
            ns.bufferTime+=1; 
            break; 
    } 
}

Vielleicht habe ich Glück und Ihr könnt mir helfen.

Viele Grüße

Geändert von edomir111111 (21-01-2012 um 13:32 Uhr)
edomir111111 ist offline   Mit Zitat antworten
Alt 21-01-2012, 19:41   #2 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
Schwer zu sagen, was da in die Quere kommt. Ich habe das bei mir mit f4v Video ausprobiert. 115 MB ist aber glaube ich ziemlich groß!

ActionScript:
  1. //Initialisiere Variablen für Video streaming
  2. var _videoURL:String = 'video/madaus.f4v',_connection:NetConnection,_stream:NetStream,_video:Video;
  3.  
  4. function init():void
  5. {
  6.     //Initialisiere Video streaming, init() im code ganz unten
  7.     video_mc.addChild(_video = new Video(873,490));
  8.     _connection = new NetConnection();
  9.     _connection.objectEncoding = ObjectEncoding.AMF3;
  10.     _connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  11.     _connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
  12.     _connection.connect(null);
  13.  
  14.     return;
  15. }// END FUNCTION
  16.  
  17. function netStatusHandler(e:NetStatusEvent):void
  18. {
  19.     //Event Handler Methode für .NET_STATUS
  20.     switch (e.info.code)
  21.     {
  22.         case "NetConnection.Connect.Success" :
  23.             //beim erfolgreichen initialisieren --> connect Stream
  24.             connectStream();
  25.  
  26.             break;
  27.         case "NetStream.Play.StreamNotFound" :
  28.  
  29.             trace("Unable to locate video: " + _videoURL);
  30.  
  31.             break;
  32.         case "NetStream.Play.Stop" :
  33.  
  34.             //_stream.seek(0);
  35.             _stream.play(_videoURL);
  36.             //_stream.close();
  37.  
  38.             break;
  39.  
  40.     }
  41.  
  42.     return;
  43. }// END FUNCTION
  44.  
  45. function connectStream():void
  46. {
  47.     //Initialisiere streaming
  48.     _stream = new NetStream(_connection);
  49.     _stream.bufferTime = .1;
  50.     _stream.client = new Object();
  51.     _stream.client.addonMetaData = onMetaData;
  52.     _stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  53.     _stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
  54.  
  55.     _video.attachNetStream(_stream);
  56.     _stream.play(_videoURL);
  57.     return;
  58. }// END FUNCTION
  59.  
  60. function securityErrorHandler(e:SecurityErrorEvent):void
  61. {
  62.     trace("securityErrorHandler: " + e);
  63.     return;
  64. }// END FUNCTION
  65.  
  66. function asyncErrorHandler(e:AsyncErrorEvent):void
  67. {
  68.     trace("ignore AsyncErrorEvent");
  69.     return;
  70. }// END FUNCTION
  71.  
  72. function onMetaData(info:Object):void
  73. {
  74.     trace("on Meta Data" + info);
  75.     return;
  76. }// END FUNCTION
  77. init();
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference

Geändert von speedjunkie (21-01-2012 um 19:45 Uhr)
speedjunkie ist offline   Mit Zitat antworten
Alt 21-01-2012, 20:35   #3 (permalink)
Neuer User
 
Benutzerbild von edomir111111
 
Registriert seit: Jun 2011
Ort: nähe Göttingen
Beiträge: 13
Thumbs up eventuell Serverproblem ???

Hallo speedjunkie,
vielen dank, dass Du mal vorbei geschaut hast.

Ich habe einen ganz ganz schlimmen Verdacht.
Und zwar habe ich jetzt die (noch) unveränderte .swf-datei auf einen anderen Server hochgeladen. Und zwar auf den von einem guten Freund. Nun halte dich fest: Es läuft ohne zu mucken. Selbst wenn ich sicherheitshalber alle temporären Dateien lösche um sicherzugehen, dass der Film auch wirklich vom Server geholt und nicht temporär geladen wird. Getestet mi IE und Modzilla.

Wenn es tatsächlich an meinem Server liegt, wäre das natürlich für eine Flashanfängerin wie mich äusserst gemein (Denn wie soll ich da einen Fehler in AS finden, wenn da keiner ist ?) und ich müsste unbedingt meine ganzen .htaccess-Dateien prüfen, ob ich nicht selber etwas blocke.

Das wäre natürlich der Ober-Hammer.

Ich berichte dir aber, wie es weiter geht und ob es überhaupt weiter geht.

Vielen Dank, für deine Mühe
edomir111111 ist offline   Mit Zitat antworten
Alt 21-01-2012, 21:38   #4 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
Sicher das kann natürlich auch sein. Wenn der Server auch belastet ist oder so das Stream abreißt. Ich weiß nicht mehr genau welcher Hostanbieter da hatte ich einen auf Windows basierenden Server und auch Probleme bei einem Audio Stream. Das ist so im Internet! Wenn Du das Video erstmal da lassen kannst, ist es doch ok.

Für welchen Player erstellst Du Deine Anwendung? Für den 10.2 hast Du die StageVideo Klasse da läuft nicht alles durch die CPU.
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference
speedjunkie ist offline   Mit Zitat antworten
Alt 22-01-2012, 11:45   #5 (permalink)
Neuer User
 
Benutzerbild von edomir111111
 
Registriert seit: Jun 2011
Ort: nähe Göttingen
Beiträge: 13
Ja, ist für den Player 10 erstellt......
und meine Verdacht hat sich bestätigt:
Es muss am Server liegen.
Bei one.de als Hoster bricht alles weg. Habe jetzt einen Testaccount bei
Kasserver.com freigeschaltet, Du kannst dir den Player hier
klick ansehen. Dort läuft er tadellos.
Ich habe es mal von verschiedenen Leuten mit verschiedenen Windows-Systemen testen lassen.
Keiner konnte Probleme feststellen.
edomir111111 ist offline   Mit Zitat antworten
Alt 22-01-2012, 20:27   #6 (permalink)
Neuer User
 
Benutzerbild von edomir111111
 
Registriert seit: Jun 2011
Ort: nähe Göttingen
Beiträge: 13
Buffer-Frage die 2.

Wie ist das jetzt eigentlich richtig?
Wenn ich den Buffer dynamisch halte mit...:

Code:
function evHandler(event:NetStatusEvent):void {
switch (event.info.code) 
    { 
        case "NetStream.Buffer.Empty":
            ns.bufferTime+=1; //eine Sekunde dazu bei Buffer-Underrun
            break; 
    } 
}
...muss ich dann trotzdem den Puffer "vorfüllen" mit:
Code:
ns.bufferTime = 5;
Danke für Hilfe und an Speedjunkie, der mir wieder prima geholfen hat. Superuser, kann ich da nur sagen.
edomir111111 ist offline   Mit Zitat antworten
Alt 22-01-2012, 23:13   #7 (permalink)
NCC 1701 D
 
Benutzerbild von speedjunkie
 
Registriert seit: Oct 2009
Ort: Metropolregion Hamburg
Beiträge: 586
Zitat:
Zitat von edomir111111 Beitrag anzeigen
Danke für Hilfe und an Speedjunkie, der mir wieder prima geholfen hat. Superuser, kann ich da nur sagen.
DANKE

Ich würde bei einem progressiven Videodownload die bufferTime nicht so hoch setzten. Wenn Du mit Media Servern arbeitest, red5 z.B. ist das ok. Wenn Du vorbuffern willst:

Zitat:
Zitat von ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Tipp: Sie können im Code NetStream.pause() verwenden, um Daten zu puffern, während Betrachter zum Beispiel einen Werbespot sehen, und dann die Pause aufheben, wenn das Hauptvideo beginnt.
Wäre in deinem Beispiel z.B. den Namen einzublenden, wer das Video gemacht hat. So gewinnst Du ein bisschen Zeit.
__________________
just be Daniel
JUNK FOOD: JavaScript Core Reference
speedjunkie ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
buffertime, netstream bricht ab, nezstream

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Netstream.pause after Netstream.play.stop thekai ActionScript 3 7 16-08-2011 14:08
Tween bricht einfach ab EpiBär ActionScript 3 2 31-10-2008 11:50
NetStream: IOErrorEvent vs. NetStatusEvent.info.code == NetStream.Play.StreamNotFound derRaab ActionScript 3 0 02-04-2008 15:43
Funktion bricht bei Klick einfach ab Klaustaler ActionScript 1 3 04-08-2006 17:55
Sound bricht einfach ab! mood Flash 4 und Flash 5 1 31-01-2003 16:00


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele