2010-07-10 3 views
3

J'essaie de comprendre comment utiliser le streaming dynamique http avec flash 10.1 mais je n'arrive pas à faire fonctionner les fonctions de base. Quelle est la syntaxe pour utiliser appendbytes avec un fichier vidéo?Comment utiliser netstream.appendBytes() pour le streaming dynamique http?

package com.player { 

import flash.display.Stage; 
import flash.net.NetConnection; 
import flash.net.NetStream; 
import flash.media.Video; 
import flash.display.Sprite; 
import flash.net.URLRequest; 
import flash.net.URLStream; 
import flash.events.Event; 
import flash.utils.ByteArray; 

public class Player extends Sprite { 

    const vurl = "file://E:/clip.flv" 

    private var nc:NetConnection; 
    private var ns:NetStream; 
    private var vo:Video; 



    private var urlstream:URLStream; 

    public function Player() { 

     nc = new NetConnection(); 
     nc.connect(null); 

     ns = new NetStream(nc); 
     ns.client = new StreamClient(); 

     vo = new Video(); 
     vo.attachNetStream(ns); 

     addChild(vo); 

     ns.play(vurl); 

     var urlrequest:URLRequest = new URLRequest(vurl) 
     urlstream = new URLStream(); 

     urlstream.addEventListener(Event.COMPLETE, completeHandler); 

     urlstream.load(urlrequest); 



    } 

    private function completeHandler(event:Event):void { 
     trace("completeHandler: " + event); 

     var bytes:ByteArray = new ByteArray(); 

     urlstream.readBytes(bytes); 

     ns.appendBytes(bytes); 
    } 


} 

}

Courir cela me donne l'erreur:

TypeError: Error #2004: One of the parameters is invalid. at flash.net::NetStream/appendBytes() at ...

Répondre

2

J'ai trouvé la solution à mes problèmes. Vous devez commencer par ns.play (null) au lieu de ns.play ('url to download');

+0

Avez-vous été capable de comprendre comment faire un vrai flux HTTP (c'est-à-dire, assembler plusieurs flux). J'ai essayé de coller ensemble deux fichiers FLV différents, mais toujours obtenir un saut dans eux. – Scott

+0

pas vraiment une réponse à se connecter à null ... consultez http://stackoverflow.com/a/7948112/280551 et l'eventuel flashdoc pour plus d'explications. l'erreur vague suggère que votre objet NetStream n'était pas en "mode de génération de données", par ex. tu as ouvert/écrit dessus. peut-être l'URL pourrait être remplacée plus tard? mais c'est plutôt boiteux, sur un front de streaming, de toute façon ... – edwardsharp

Questions connexes