J'ai essayé de lécher ce problème depuis des mois ... Dans Flash 9 Je suis en train de charger un fichier MP3 en streaming et calculer la longueur de la piste. Je peux le faire très bien, mais quand le canal du mp3 est mono, le temps est le double de la longueur de la piste d'origine. Comment ai-je compris cela? Eh bien, j'ai testé mon lecteur en enregistrant dans Sound Recorder sur Windows, mais, heureusement, j'ai oublié d'enregistrer le MP3 en stéréo.Flash 9: Comment déterminer si une piste de streaming est mono?
Maintenant, Flash, j'ai essayé calcul de la durée de nombreuses façons en utilisant octets chargés, le total des octets, la position de jeu et toutes les formules que vous pourriez penser à utiliser. Les maths sont bien. Le problème est que lorsque Flash charge un mp3, il suppose automatiquement que le fichier est en stéréo. Ainsi, quand il charge les données, il va de l'avant et double la quantité d'octets qu'il pense avoir parce qu'il reconnaît un canal à une certaine taille, puis le double pour la stéréo. Cela produit une fausse valeur de la taille de la charge qui, avec les maths correctes, double la longueur de la piste. C'est pourquoi le mono ne fonctionne pas avec la formule habituelle que nous utilisons.
Pour lutter contre cela, je besoin d'un moyen de déterminer si le fichier est mono ou stéréo. Et non, les données ID3 retourne la valeur incorrecte aussi, je l'ai déjà essayé de déterminer manuellement à l'aide soundTransform.leftToLeft, soundTransform.leftToRight, soundTransform.rightToLeft et soundTransform.rightToRight (il renvoie des valeurs pour le son stéréo).
Je ne connais aucune façon d'avoir Flash vous dire quels canaux audio le fichier a, correctement. J'espère que je suis juste en train de négliger quelque chose et toute aide ou conseil de dépannage, que je l'ai déjà essayé ou non, sera grandement apprécié.
Correction du problème: Pour une raison quelconque, Flash a doublé la taille du nombre d'octets qu'il trouve dans un canal (car il suppose qu'il est stéréo). J'ai dû recalculer la taille finale une fois le chargement terminé, PAS UNE FOIS, DEUX FOIS! Ne me demande pas. Le faire une fois encore renvoyé 2x, mais le faire deux fois fonctionne. –