genius
05.07.2005, 02:47
пишу приложение, в котором очень важна точная синхронизация звукового ряда (mp3-файл) и визуального ряда (бит).
у меня есть два класса.
один - Timer, экземпляр его с момента вызова метода timer.start() начинает отсчитывать с нуля время (с помощью getTimer()) и "вещать" его всем заинтересованным объектам.
второй - MusicFile. всё, что он делает - это грузит mp3-файл и проигрывает его, когда надо.
когда экземпляр MusicFile успешно загружает свой mp3-шник, я стартую таймер и говорю мп3шнику начинать играть. а дальше начинается необъяснимое.
если назначить слушателя, который будет трейсить timer.getTime() и musicFile.mp3file.position, то в одинаковое время они стойко показывают разницу, причем всегда разную! за 10 секунд она составила от 63 до 127 мс, причем никакой системы на первый взгляд выявить не удалось.
почему так происходит? кто из них врет? кто-нибудь сталкивался с подобными проблемами? есть ли какие-нибудь пути решения?
заранее спасибо за вашу помощь :)
у меня есть два класса.
один - Timer, экземпляр его с момента вызова метода timer.start() начинает отсчитывать с нуля время (с помощью getTimer()) и "вещать" его всем заинтересованным объектам.
второй - MusicFile. всё, что он делает - это грузит mp3-файл и проигрывает его, когда надо.
когда экземпляр MusicFile успешно загружает свой mp3-шник, я стартую таймер и говорю мп3шнику начинать играть. а дальше начинается необъяснимое.
если назначить слушателя, который будет трейсить timer.getTime() и musicFile.mp3file.position, то в одинаковое время они стойко показывают разницу, причем всегда разную! за 10 секунд она составила от 63 до 127 мс, причем никакой системы на первый взгляд выявить не удалось.
почему так происходит? кто из них врет? кто-нибудь сталкивался с подобными проблемами? есть ли какие-нибудь пути решения?
заранее спасибо за вашу помощь :)