Appel channel.position sur un événement ENTER_FRAME, je remarque que ce n'est pas mis à jour toutes les images, mais il ressemble plus à chaque image et demi.Cadres pour Audio Synchronisation et channel.position Précision
var sound:Sound = new Sound(new URLRequest('music.mp3'));
var channel:SoundChannel = sound.play(); // assume the sound is completely,
// totally, 100% loaded
addEventListener(Event.ENTER_FRAME, function(e:Event):void{
trace( "Position : " + channel.position
+ " - Frame : " + int(channel.position/30));
});
se traduira par quelque chose le long des lignes de (30 FPS)
...
Position : 1439.6371882086166 - Frame : 47
// 48 is missing
** Position : 1486.077097505669 - Frame : 49
** Position : 1486.077097505669 - Frame : 49
Position : 1532.517006802721 - Frame : 51
Position : 1578.9569160997733 - Frame : 52
// 53 is missing
** Position : 1625.3968253968253 - Frame : 54
** Position : 1625.3968253968253 - Frame : 54
Position : 1671.8367346938776 - Frame : 55
// 56 is missing
Position : 1718.2766439909296 - Frame : 57
...
Quelqu'un at-il remarqué ce comportement avant? Existe-t-il des techniques pour déterminer quel «cadre» de l'audio est joué, sachant cette inexactitude?
Jacking le taux de trame jusqu'à 60 prend en charge les images manquantes, mais ne augmenter la granularité des demandes channel.position. Il en résulte que la trame 55 est signalée 3, ou 4 fois 56 signalées 3 ou 4 fois, et ainsi de suite. – Robert
C'est étrange parce que les événements ENTER_FRAME ne devraient se déclencher qu'une fois par image. – Soviut
À droite, et ce n'est pas qu'il déclenche plus d'une fois une image, sa position de canal est mise à jour à une vitesse plus lente que la fréquence d'images. – Robert