IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004] Problème son sur certaines cartes son


Sujet :

Flash

  1. #1
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut [FLASH MX2004] Problème son sur certaines cartes son
    J'ai une grosse appli flash qui est un jeu. Elle a des vidéos en FLV, du son, et pas mal d'animations.

    J'ai un problème avec le son sur certaines configurations.

    Le son disparait sur certaines vidéos, ou plutôt, ne se lance pas, au bout d'un moment, sur certaines configurations.

    Tout marche parfaitement sur la plupart des machines, mais sur le VIA de Sony qui dispose d'une carte son VIA AC97, il y a des vidéos dont le son ne se lance pas.

    Savez-vous d'ou cela peut venir? Est-ce que ça pourrait être un problème de nombre de cannaux? Est-ce parce que cette carte son n'a pas de chipset sonore, et pas de mémoire?

    Il y a quelques autres configurations ou le son saute de la même façon, mais je n'ai pas encore les spécifications des machines.
    Je les posterai prochainement.

    Merci.

  2. #2
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello
    Faudrait savoir l'encodage des vidéos... faudrait savoir comment est faite ton application.
    Tu as essayé d'isolé ton problème en chargeant une vidéo qui ne fonctionne pas dans ton applicatif toute seule dans un swf à part et de tester sur la machine qui ne lis pas bien cette vidéo ?
    Pour le reste... normalement le flashplayer ne gère pas les notions de canaux ou autre de la carte... il a pour flashMX2004 16 canneaux je crois, 32 pour flash8 et pour les version d'avant 6 à 8 cannaux.. mais je me rappelle plus exactement... mais je ne pense pas que cela vienne de cela.... faut voir ton flv et son encodage (il en existe plusieurs)

    EKA+

  3. #3
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Les flv fonctionnent très bien, nous les avons tous testé.
    En fait, le problème ne vient pas de là car ils fonctionnent tous un a un. C'est juste le fait d'en enchainer plusieurs qui pose problème.
    Si j'interverti l'ordre des flv, alors celui qui n'a pas de son change aussi.

    Je rappele que sur la plupart des configs, tout fonctionne.

    De plus, il arrive que le son du flv se joue bien la première fois, et pas la deuxième fois lorsqu'il est rappelé pour une lecture.

    Bref, ce n'est pas lié à un flv lui même, mais plus à la gestion du son dans sa globalité.

  4. #4
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Donc là .. faut voir le code .. et forcément faut arriver un minimum à isoler les séquences des vidéos pour pas être en plein milieu de l'applicatif et être certain que le problème ne vienne pas d'autre chose
    Si tu as un test qui illustre tout cela à montrer, c'est la seule chose qui puisse me permettre de t'aider car sinon pour ma part ton type d'erreur je ne l'ai jamais vu ? donc forcément difficile de te dire ce qui ne va pas sans en savoir +
    EKA+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    j'allais te rediriger vers ce topic
    http://www.developpez.net/forums/vie...ighlight=video

    mais apparament c'etait ton pb
    donc je vois que tu l'as tjs pas resolu.. ou pas sur tous les pcs.

    sinon peut etre en baissant la qualite des films, pour ceux qui ont des pbs.
    Il semble que ce soit un probleme de memoire.. peut etre est ce la seule solution...
    Une petite option a coche et c'est regler.. meme si ca suppose d'avoir ttes les videos en double..
    au moins test avc des videos de moins bonne qualite pour voir si le pb persiste..

    et comme l'a dit eka, faire un tour du cote du code pour etre sur que le garbage collector est utilise efficacement..
    d'ailleurs c'est qu'elle version de flash? 7 ? 8 ?

  6. #6
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Si c'est une histoire de mémoire faut voir du coté de flasm et swfsli
    - flasm : http://flasm.sourceforge.net/ (optmiser le code)
    - swf scriptlimit injector : http://www.buraks.com/swfsli/ (pour élargir un peu les limites du swf au niveau récursion etc...)
    Sinon j'avais pas pensé au garbage collector.. mais sans voir le code j'ai du mal à voir ce qui peut causer ce genre de problème...
    Au passage font quelle taille les vidéos ? 80MO ? d'un coup ou en plusieurs petit bouts ? Tu peux découper tes vidéos et les séquencer en forcant de vider le cache à chaque fois sur ce que tu n'utilises pas ... je pense que cela devrait alléger.
    J'avais un lien pour un utilitaire qui découpe les flv en plusieurs... mais je le trouve plus si je le retrouve je posterai le lien ici .
    EKA+

  7. #7
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Je crois que j'ai trouvé
    http://www.peldi.com/blog/archives/2005/09/flvparserexe_a.html
    EKA+

  8. #8
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par escafr
    j'allais te rediriger vers ce topic
    http://www.developpez.net/forums/vie...ighlight=video

    mais apparament c'etait ton pb
    donc je vois que tu l'as tjs pas resolu.. ou pas sur tous les pcs.

    sinon peut etre en baissant la qualite des films, pour ceux qui ont des pbs.
    Il semble que ce soit un probleme de memoire.. peut etre est ce la seule solution...

    et comme l'a dit eka, faire un tour du cote du code pour etre sur que le garbage collector est utilise efficacement..
    d'ailleurs c'est qu'elle version de flash? 7 ? 8 ?
    Au début, je pensais qu'il s'agissait d'un problème mémoire, mais maintenant, je ne suis plus certain. J'ai l'impression qu'il y a autre chose, lié au type de carte son.

    Le fait de vider la mémoire a amélioré les choses, c'est clair, mais je pense que c'est aussi en rapport avec la carte son.

    Le code est tout ce qu'il y a de plus normal, et comme je l'ai indiqué plus haut, ça fonctionne parfaitement sur la plupart des machines. je me contente de faire des pause(true); ou pause(false) sur des netstream.
    La vidéo se joue toujours bien, mais parfois, il n'y a pas de son.

    Je ne peux pas splitter les vidéos, et je ne peux pas non plus baisser la qualité, les clients ne seraient pas d'accord.

    Je ne pense pas qu'il y ait des problèmes de récursion non plus.

    Le code est assez complexe car il y a un préchargement fait au début de l'appli grâce à une classe spéciale. Après, on instancie la classe et on jour simplement des vidéos de type netstream.

    Le problème d'isoler les vidéos, c'est que dans ce cas, il n'y a aucun problème. les vidéos une à une ont toujours du son. C'est leur enchainement qui pose problème. Sur certaines configs, je n'ai plus de son.

    Je peux vous mettre la classe SuperCedNetStream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    class SuperCedNetStream {
        private var theName:String;
        //private var theNetStream:NetStream;
     
        private var netStream:NetStream;
     
        private var netConn:NetConnection;
     
        private var loadedFlag:Boolean;
    	private var bytesToLoad:Number;
     
        private var verbose:Boolean;
     
        public function SuperCedNetStream(s:String) {
            verbose = false;
            netConn = new NetConnection();
            netConn.connect(null);
            theName = s;
            netStream = new NetStream(netConn);
            netStream.onStatus = function(infoObject) {
      		    /*trace( "Status (NetStream)");
      		    trace( "Level: "+infoObject.level);
      		    trace( "Code: "+infoObject.code);*/
    	   };
    	   netStream.setBufferTime(0);
    	   netStream.play(theName);
    	   netStream.pause();
    	   loadedFlag = false;
    	   bytesToLoad = 0;
    	   if (verbose) {
                trace("SuperCedNetStream() " + s );
            }
        }
     
    	public function abortAll():Void {
    		delete netStream;
    		delete netConn;
    		delete theName;
    	}
     
        public function isLoaded() :Boolean {
          if (loadedFlag) {
            return true;
          }
            if (verbose) {
                trace("SuperCedNetStream isLoaded : " + this.theName + " " + 
    				  	this.netStream.bytesLoaded + " on " + this.netStream.bytesTotal);
     
                if (this.netStream.bytesLoaded==this.netStream.bytesTotal) {
                    trace("SuperCedNetStream : netStream loaded " + theName);
                } else {
                    trace("SuperCedNetStream : netStream not loaded " + theName);
                }
            }
    		if (this.netStream.bytesTotal==0) {
    			return false;
    		}
    		if (this.netStream.bytesLoaded==this.netStream.bytesTotal) {
    			bytesToLoad = this.netStream.bytesTotal;
    		    loadedFlag = true;
    		    //netStream.close();
    		    netStream.pause(true);
    			delete netStream;
                return true;
            } else {
                return false;
            }
        }
     
        public function getName() :String {
            if (verbose) {
                trace("SuperCedNetStream getname()");
            }
            return theName;
        }
     
        public function getStream() :NetStream {
            if (verbose) {
                trace("SuperCedNetStream getStream()");
            }
    		//delete netStream;
    		netConn = new NetConnection();
            netConn.connect(null);
            netStream = new NetStream(netConn);
            netStream.onStatus = function(infoObject) {
      		    /*trace( "Status (NetStream)");
      		    trace( "Level: "+infoObject.level);
      		    trace( "Code: "+infoObject.code);*/
    	   };
    	   netStream.setBufferTime(0);
    	   netStream.play(theName);
    	   netStream.pause();
    	   trace("video restarted");
           return netStream;
        }
     
    	public function deleteNetStream():Void {
            if (verbose) {
                trace("SuperCedNetStream deleteNetStream()");
            }
            trace("SuperCedNetStream deleteNetStream()");
    	   //netStream.close();
    	   netStream.pause(true);
    	   delete netStream;
    	   netStream = null;
        }
     
        public function getProgress() :Number {
            if (verbose) {
                //trace("SuperCedNetStream getProgress()");
            }
    		if (loadedFlag) {
            	return bytesToLoad;
          	}
            return netStream.bytesLoaded;
        }
     
        public function getTotal() :Number {
            if (verbose) {
                //trace("SuperCedNetStream getTotal()");
            }
    		if (loadedFlag) {
            	return bytesToLoad;
          	}
            return netStream.bytesTotal;
        }
     
        public function toString():String {
            return typeof(theName);
        }
     
    }
    Cette classe est appelée par une autre classe SuperCedVideoManager qui gère un groupe de vidéos.

    L'instanciation se fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    var fnameStep3:Array = new Array("JLR_info_m3",
    								 "JLR_inact_m3_1", "JLR_inact_m3_2", "GRUE_m3",
    								 "JLR_qpote", "JLR_chrono_m3",
    								 "JLR_info_bonus", "JLR_chrono_bonus", 
    								  "PUBLIC_super", 
    								  "JLR_inact_bonus1", "JLR_inact_bonus2",
    								  "JLR_result_bonus", "JLR_result_m3_fx",
    								 "JLR_result_m3_ok2", "JLR_result_m3_ok3", "JLR_result_m3_ok4","JLR_result_m3_ok5",
    								  "JLR_fin_m3" );
    var fnumberStep3:Array = new Array(1,
    								   2, 2, 1,
    								   1, 1,
    								   2, 1, 
    								   1, 
    								   1, 2,
    								   2, 1,
    								   1, 1, 1, 1,
     
    								   2);
     
    // lance le chargement de tout Intro
    if (!_root.sansVideo) {
    	videoManagerIntro = new SuperCedVideoManagement(fnameIntro, fnumberIntro, _root.videoList);
    }
    _root.videoList est une liste de référence au vidéos.

    Ensuite, j'appelle la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	var netStreamQuest:NetStream = _level0.loading.videoManagerStep.chooseNetStreamFromFolder("JLR_result_m3_ok2");
    	this.myVideo.attachVideo(netStreamQuest);
    	netStreamQuest.onStatus = function(infoObject2) {
    		maVariable2 = infoObject2.code;
    		if (maVariable2 == "NetStream.Play.Stop") {
    			this.pause(true);
    			_root.Fond.gotoAndPlay("lcmtChrono");
    		}
    	};
    	netStreamQuest.seek(0);
    	netStreamQuest.pause(false);
    Sue le label "lcmtChrono", une autre vidéo est appelée de la même façon, etc.
    Au bout d'un moment et cela uniquement sur certaines config, la vidéo n'a plus de son.

    Par contre, il faut bien noter que l'absence de son sur ces vidéos apparait sur n'importe quelle vidéo.

    Je vais essayer le désassembleur Flash pour voir tout ça de plus près...

    Si vous voyez une erreur, ça m'intéresse.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    Citation Envoyé par SuperCed

    Je peux vous mettre la classe SuperCedNetStream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    class SuperCedNetStream {
        private var theName:String;
        //private var theNetStream:NetStream;
     
        private var netStream:NetStream;
     
        private var netConn:NetConnection;
     
        private var loadedFlag:Boolean;
    	private var bytesToLoad:Number;
     
        private var verbose:Boolean;
     
        public function SuperCedNetStream(s:String) {
            verbose = false;
            netConn = new NetConnection();
            netConn.connect(null);
            theName = s;
            netStream = new NetStream(netConn);
            netStream.onStatus = function(infoObject) {
      		    /*trace( "Status (NetStream)");
      		    trace( "Level: "+infoObject.level);
      		    trace( "Code: "+infoObject.code);*/
    	   };
    	   netStream.setBufferTime(0);
    	   netStream.play(theName);
    	   netStream.pause();
    	   loadedFlag = false;
    	   bytesToLoad = 0;
    	   if (verbose) {
                trace("SuperCedNetStream() " + s );
            }
        }
     
     
     
        public function getStream() :NetStream {
            if (verbose) {
                trace("SuperCedNetStream getStream()");
            }
    		//delete netStream;
    		netConn = new NetConnection();
            netConn.connect(null);
            netStream = new NetStream(netConn);
            netStream.onStatus = function(infoObject) {
      		    /*trace( "Status (NetStream)");
      		    trace( "Level: "+infoObject.level);
      		    trace( "Code: "+infoObject.code);*/
    	   };
    	   netStream.setBufferTime(0);
    	   netStream.play(theName);
    	   netStream.pause();
    	   trace("video restarted");
           return netStream;
        }
    je comprends pas pkoi qd tu fais un get, tu reinstancies tt le bordel. alors que c'est deja fait dans l'init??
    si c'est pour redemarrer la video, ya pas un moyen plus direct, genre comme un gotoandplay(0) pour un clip ( il est a note que j'y connais rien en video flv), pq si a chaque fois que tu fais appel a une video, tu recharges tt..

    et puis si tu dois vraiment tt reinstancier, alros pkoi as tu mis en commentaire le deleteNetStream?

    enfin j'essaye de comprendre la code.. et la logique pq la..

  10. #10
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Une FLV fonctionne avec la classe NetStream.. donc pas de gestion d'image clé comme dans un swf
    J'ai pas le temps de regarder + en profondeur le code au dessus pour le moment Mais je peux juste dire niveau optimisation que pour les onStatus etc.. ce serait pas mal d'utiliser la classe mx.utils.Delegate et de créer des fonctions avec délégation du scope ... beaucoup plus clair et souple au niveau du code AS2 ensuite
    EKA +

  11. #11
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Comme tu dis, le flv est bien rechargé à chaque get.
    Et comme tu le soulignes, à la base, ce n'est pas spécialement logique.

    Cependant, le fait de décharger de la mémoire le netstream, puis de le réappeler à un avantage : il est déjà en cache sur le disque.

    Tu me demandes pourquoi alors je décharge l'objet pour le réinstancier plus tard, et ta question est très louable.

    En fait, j'essaye de diminuer au maximum la taille de l'appli en mémoire. Cependant, j'ai besoin d'une mise en cache de mes fichier flv afin que le téléchargement se fasse par le disque et non par le réseau.

    Dans mon appli, il y a des phases de chargement ou les flv sont téléchargées mais pas joués. Ensuite, je les efface de la RAM grâce à la commande delete.
    Puis, je les appelle pour les jouer. Le code est le même que pour le premier chargement, mais les flv sont en fait déjà sur le disque et le lancement de la vidéo est donc immédiat.

    Pour les notifications, tu as certainement raison ekameleon, j'y penserai la prochaine fois, mais pour le moment, ce n'est pas mon problème majeur.

  12. #12
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Dans tous les cas.. avant de mettre en mémoire faut charger, et à part avoir un serveur FCS ou fare du stream serveur PHP ... je vois mal comment tu vas pouvoir alléger la mémoire de ta machine si en + tu laisses tout en mémoire L'intérêt d'un full stream c'est justement de charger que ce qui t'intéresse au niveau de la vidéo au moment où tu veux le charger et de ne pas tout charger.

    A noter ce lien sur Flashcomguru pour faire du stream via du php :
    http://www.flashcomguru.com/index.cfm/2005/11/2/Streaming-flv-video-via-PHP-take-two

    Cela demande donc de faire que des accés serveur.. mais d'un autre côté il n'y a pas toute la vidéo de chargée mais seulement ce qui est lu...

    Maintenant il est clair que si le client veut pas qu'on découpe ses flv, qu'il veut pas de stream, qu'il veut en + faire des économies en requête serveur (et si en + il a pas un dédié...) faut oublier de vouloir trop en demander au flashplayer à ce niveau là.

    Maintenant il est possible qu'il y est des problèmes selon les machines et il est très difficile de savoir quelles seront les machines qui seront à la traine ?

    EKA+

  13. #13
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par ekameleon
    Dans tous les cas.. avant de mettre en mémoire faut charger, et à part avoir un serveur FCS ou fare du stream serveur PHP ... je vois mal comment tu vas pouvoir alléger la mémoire de ta machine si en + tu laisses tout en mémoire
    Ben justement, je ne laisse pas tout en mémoire, c'est bien pour ça que j'utilise le mot clef delete dans ma classe.

    A noter ce lien sur Flashcomguru pour faire du stream via du php :
    http://www.flashcomguru.com/index.cfm/2005/11/2/Streaming-flv-video-via-PHP-take-two
    Je ne cherche pas à faire du streaming. Je lis toujours les vidéos du début à la fin.
    J'ai donc besoin de toute la vidéo. Je télécharge à peu près 80 Mo de vidéos pour une partie.

    Maintenant il est possible qu'il y est des problèmes selon les machines et il est très difficile de savoir quelles seront les machines qui seront à la traine ?
    Je cherche justement d'ou viennent ces problèmes et comment les résoudre.
    Je ne comprends surtout pas pourquoi l'appli fonctionne bien sur la plupart des machines, et que le son a un problème sur d'autres.
    Je pense que c'est un problème de mémoire et de carte son, mais quoi exactement???...
    Et comment pallier à ça?...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    bon alros je vais peut etre contourner ton pb.. mais la ya qquechose qui mechappe..

    tu fais un jeu, qui a besoin de 80Mo de video a chaque fois..

    donc a chaque fois qu'un joueur va jouer.. il retelechargera 80Mo de video..
    sans compter la zik et tt et tt..

    pkoi tu fais pas une installe avc telechargement de tt les fichiers necessaires puis comme tt est en local ben pas de pb de chargement et autre truc relou..

    apres tu fais un systeme de patch ( jai cru comprendre qd flash 8 permettait des trucs pratiques pour la gestion de fichier ) et voila..

    enfin je prend exemple sur un jeu tres connu entierement en Flash (dofus) et c'est comme ca que c'est gere..
    certes le defaut est qu'a chaque update il faille retelecharger les fichiers modifies.. mais au moins.. plus de pb de chargement cache et autre pb qui sont la plupart du temps du a la limitation de flash a gere "proprement" la memoire..

    apres si ce sont des contraintes de la part du client (celui pour qui tu developpes ton jeu) ben tu lui expliques gentillement que on peut pas tt avoir.. et que techniquement ce n'est pas possible..

    vivement Flash 8.5!

  15. #15
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Oui, la première fois, le joueur télécharge 80Mo.
    Mais il y a 2 problèmes qui se posent pour tout mettre en local.

    Tout d'abord, le joueur télécharge 80Mo, mais sur 160mo de vidéo, et une bonne partie des vidéos sont tirées au hasard. Donc une partie ne ressemble pas à une autre partie au niveau des vidéos.
    les vidéos à télécharger sont donc différentes pour chaque joueur et partie.

    Par contre, évidemment, si un joueur rejoue, il n'aura que quelques nouvelles vidéos à retélécharger.

    D'autre part, si une partie des vidéos est chargées au début, ce n'est qu'une petite dizaine de Mo, le reste est réellement téléchargé pendant le déroulement du jeu lui-même, ce qui permet au joueur de ne pas passer son temps sur les loading.

    Donc le jeu commence même si toutes les vidéos ne sont pas chargées.

    Mais je suis convaincu que le problème ne vient pas du réseau, mais bien de la lecture des flv eux mêmes. Tous les flc sont ramenés correctement depuis le réseau, le problème vient de la lecture depuis la cache disque. Dans certain cas, pas de son.

    Donc le problème n'est pas au niveau réseau, mais bien au niveau de la lecture elle-même du flv et de la gestion du son dans Flash.

    Je vais bientôt avoir les détails techniques des autres machines sur lesquelles il y a des problèmes. Je pense que ça vient du nombre de voix audio, ou peut être de la mémoire disponible pour la carte son.

    Il faut déjà que je trouve exactement l'origine du problème, ensuite je chercherai une solution.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    certes mais les videos sont dans le cache d'internet ??

    donc si jamais il vide son cache a chaque demarage de son systeme ben il devrait redl ttes les videos necessaires..

    enfin bon si le pb ne vient pas de la..

    et sinon pkoi n'essaye tu pas de reencoder les videos en changeant les parametres du son en mettant par exemple le son en mono.. ca pourrait resoudre des pbs de canaux ou le pb de memoire.. dans tt les cas d'apres ce que tu dis c'est un pb hardware.. alors tu seras oblige de passe par la..

    ne peux tu faire des tests avc differents encodages.. au moins pour cibler le pb..??

  17. #17
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par escafr
    certes mais les videos sont dans le cache d'internet ??

    donc si jamais il vide son cache a chaque demarage de son systeme ben il devrait redl ttes les videos necessaires..
    Exactement.

    dans tt les cas d'apres ce que tu dis c'est un pb hardware.. alors tu seras oblige de passe par la..

    ne peux tu faire des tests avc differents encodages.. au moins pour cibler le pb..??
    Ce n'est pas réellement un problème hardware, c'est plutôt, une limitation du player par rapport à un hardware. Enfin, je pense...
    Sinon, les flv sont déjà en mono.

  18. #18
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    J'ai plus d'informations : le problème se pose sur les cartes son de type SOUNDMAX, intégrées à la carte mère aussi.

    Donc en gros, pour résumer, dès que la carte son est intégrée, le son a des problèmes.

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    donc c'est bien un probleme hardware... et ca je vois pas cmt tu peux le resoudre... doit y avoir un buffer de merde sur ce type de carte son et bim ca part en live..

    enfin je serais curieux d'avoir la solution que tu vas utiliser...

  20. #20
    Membre actif
    Profil pro
    Ingénieur développement
    Inscrit en
    Juillet 2004
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement

    Informations forums :
    Inscription : Juillet 2004
    Messages : 323
    Points : 291
    Points
    291
    Par défaut
    En fait, c'est soir un problème d'utilisation de la mémoire de la carte son, et dans ce cas, il faut que que je diminue la taille en mémoire des sons. Soit c'est un problème du nombre de cannaux utilisés, et là, c'est plus difficile.

    Sur un autre forum, on m'a dit d'utiliser la même variable netstream dans le déroulement de mon jeu.

    C'est peut être un début de solution, je vais essayer...

    Donc il faut que je repère s'il s'agit d'un problème de mémoire ou de cannal. Ensuite, selon le cas, il faut que j'allège d'une façon ou d'une autre le nombre de sons en mémoire, et le nombre de cannaux utilisés.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Produire du son sur la carte son du PC avec Delphi
    Par airefrais dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 02/07/2009, 22h17
  2. [Turbo Pascal] Générer du son sur la carte son
    Par boudakou dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 20/02/2009, 19h23
  3. [FLASH MX2004] Problème loading à cause du son
    Par zzman dans le forum Flash
    Réponses: 2
    Dernier message: 30/03/2006, 21h14
  4. [TP]Envoyer un son sur la carte son
    Par Alkangelis dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 31/10/2004, 11h49
  5. Carte son sur ordinateur portable
    Par devmat dans le forum Matériel
    Réponses: 14
    Dernier message: 08/10/2004, 00h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo