Aide - Recherche - Membres - Calendrier
Version complète : NetStream.onMetaData et NetStream.onStatus buggés ?
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Flash Media Interactive Server et Flash Remoting
briiareos
J'ai un soucis avec des onMetaData et onStatus qui ne sont pas appelés alors que la vidéo est bien lue

Ca marche si tout est initialisé au tout début :

Action Script

var urlFlv:String='';
var connexionTEST:NetConnection = new NetConnection();
connexionTEST.connect('rtmp://xxx.st.net/test/');
var streamTEST:NetStream = new NetStream(connexion);
//
connexionTEST.onStatus = function(infoObject:Object) {
trace('connexionTEST : '+infoObject.code);
};
streamTEST.onMetaData = function(infoObject:Object) {
trace('** preview ** streamTEST.onMetaData : '+infoObject.code);
};
streamTEST.onStatus = function(infoObject:Object) {
trace('** preview ** streamTEST.onStatus : '+infoObject.code);
};
//
function lancer():Void {
video.clear();
video.attachVideo(streamTEST);
streamTEST.play(urlFlv);
}
//
var envoi:LoadVars = new LoadVars();
var recu:LoadVars = new LoadVars();
recu.onLoad = function() {
urlFlv = this.urlClip;
lancer();
};
//
envoi.sendAndLoad(apiPath,recu);


Le problème est que l'uri n'est pas fixe et est renseignée en dynamique et avec ce code les onMetaData et onStatus ne sont pas appellés alors que la vidéo est bien lue :

Action Script


var urlFlv:String='';
var urlConnect:String = '';
var urlFile:String = '';
//
var connexionTEST:NetConnection;
var streamTEST:NetStream;
connexionTEST.onStatus = function(infoObject:Object) {
trace('connexionTEST : '+infoObject.code);
};
streamTEST.onMetaData = function(infoObject:Object) {
trace('** preview ** streamTEST.onMetaData : '+infoObject.code);
};
streamTEST.onStatus = function(infoObject:Object) {
trace('** preview ** streamTEST.onStatus : '+infoObject.code);
};
//
function lancer():Void {
video.clear();
video.attachVideo(streamNRJ);
streamNRJ.play(urlFile);
}
//
var envoi:LoadVars = new LoadVars();
var recu:LoadVars = new LoadVars();
recu.onLoad = function() {
urlFlv = this.urlClip;
var eltStream:Array = urlFlv.split('/');
var nbElts:Number = eltStream.length;
nbElts--;
for (var i = 0; i<4; i++) {
urlConnect += eltStream[i]+'/';
}
for (var i = 4; i<nbElts; i++) {
urlFile += eltStream[i]+'/';
}
urlFile += eltStream[nbElts];
urlFile = urlFile.split('.flv')[0];
connexionTEST = new NetConnection();
connexionTEST.connect(urlConnect);
streamTEST = new NetStream(connexionTEST);
lancer();
};
//
envoi.sendAndLoad(apiPath,recu);


J'ai essayé différentes configuration de déclaration et d'instantiation de la NetConnection et de la NetStream, à chaque fois la video se lit mais jamais onMetaData et onStatus ne sont appellés.
Si qqun voit où est mon erreur smile.gif
briiareos
petite avancé, avec ce code j'ai enfin les onStatus invoqués, par contre, il me sort StreamNotFound alors qu'après vérification le flv existe bien et les variables sont bonnes :

Action Script

var urlFlv:String = '';
var urlConnect:String = '';
var urlFile:String = '';
//
var connexionTEST:NetConnection = new NetConnection();
connexionTEST.connect(null);
var streamTEST:NetStream = new NetStream(connexionTEST);
connexionTEST.onStatus = function(infoObject:Object) {
trace('connexionTEST : '+infoObject.code);
if (infoObject.code == 'NetConnection.Connect.Success' && urlConnect != '') {
lancer();
}
};
streamTEST.onMetaData = function(infoObject:Object) {
trace('** preview ** streamTEST.onMetaData : '+infoObject.code);
};
streamTEST.onStatus = function(infoObject:Object) {
trace('** preview ** streamTEST.onStatus : '+infoObject.code+' = chemin : '+connexionTEST.uri+urlFile);
};
function lancer():Void {
video.clear();
video.attachVideo(streamTEST);
streamTEST.play(urlFile);
}
//

var envoi:LoadVars = new LoadVars();
var recu:LoadVars = new LoadVars();
recu.onLoad = function() {
urlFlv = this.urlClip;
var eltStream:Array = urlFlv.split('/');
var nbElts:Number = eltStream.length;
nbElts--;
for (var i = 0; i<4; i++) {
urlConnect += eltStream[i]+'/';
}
for (var i = 4; i<nbElts; i++) {
urlFile += eltStream[i]+'/';
}
urlFile += eltStream[nbElts];
urlFile = urlFile.split('.flv')[0];
connexionTEST.close();
connexionTEST.connect(urlConnect);
};
//
envoi.sendAndLoad(apiPath,recu);
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.