PDA

Просмотр полной версии : Как определить frame rate


Kenred
10.09.2004, 10:57
Я вроде просмотрел все возможные методы и свойства объекта MovieClip но не нашел как мне узнать frame rate мувика?. Мне надо загружать аудио а возможны ситуации когда они будут с разным frame rate-ом и чтобы все коректно работало мне надо научиться его корректно определять

iNils
10.09.2004, 11:38
Программно это ты не узнаешь.
И что за ситуация при которой аудио будет не корректно работать?

Kenred
10.09.2004, 12:21
Оригинал написал(а) iNils
Программно это ты не узнаешь.
И что за ситуация при которой аудио будет не корректно работать?

Блин жалко....
А ситуация такая: делаю SWF плеер с интерфейсом как у Винампа примерно. Нужно реализовывать функцию перескока на определные участки. Время задается в секундах я для "прыжка" расчитываю
<номер_кадра>=<кол-во_секунд>*<frame rate>

и потом пишу $player.gotoAndPlay(<номер_кадра>);
обычно у SWF-ок frame rate равняется 32, но иногда могут попадаться с 12 и тогда косяки

iNils
10.09.2004, 12:32
Если swf с музыкой создаешь ты сам, то опиши в них переменную с нужными данными.

Kenred
10.09.2004, 12:41
:))) было бы все так просто я бы и не парился :)))

dimarik
10.09.2004, 13:30
Проиграй мувик с определенным количеством кадров. Затем рассчитай кол-во кадров в секунду, воспользовавшись замеренным временем

1. getTimer() в первом кадре
2. getTimer() в последнем (например, 10-ом кадре)

Разница = delta от 2-го и 1-го getTimer'а

fps = 10/delta;

ЗЫ Чем больше кадров, тем больше точность определения FPS )(ИМХО)

Kenred
10.09.2004, 13:33
ладно буду делать так... по умолчанию 32 а если в XML-ке с плейлистом другой то буду испольовать значения другой

Плейлист создается таким образом

_global.itemNr = playXML.firstChild.childNodes.length;
var myItem = playXML.firstChild.firstChild;
_global.playlist = new Array();

for (var i = 1; i <= _global.itemNr; i++) {
_global.playlist[i] = myitem.attributes;
myItem = myitem.nextSibling;
}


а как мне узнать что аттрибут framRate был задан ?
на ПХП было я бы сделал примерно так

if (isset(_global.playlist[k].frameRate))
_global.frameRate = _global.playlist[k].frameRate;
else
_global.frameRate = 32;
а какэто сдлетаь на Flash? кароче говоря аналог функции isset(). И будет ли это работать в даном случае

iNils
10.09.2004, 13:43
А почему именно 32 кадра?

dimarik
10.09.2004, 13:47
Оригинал написал(а) Kenred

Нужно реализовывать функцию перескока на определные участки. Время задается в секундах я для "прыжка" расчитываю
<номер_кадра>=<кол-во_секунд>*<frame rate>


Если я правильно понял, то сам звук импортируется в отдельные SWF в режиме дизайна. А "функция перескока на определные участки" - это управление ЗВУКОМ (поиск определенного места композиции, например) из родительской SWF.
Вопрос таков: есть ли возможность не связываться с SWF в которые встроен звук, а использовать прямую загрузку mp3 в объект Sound?

Nox Noctis
10.09.2004, 13:54
насколько я понимаю, вопрос не в том чтобы узнать фреймрейт мувика, а в том чтобы его проиграть в соответствии со скоростью звуковой дорожки. если можно узнать какой фпс НАДО получить - то есть замечательная функция setInterval :)

someClip.id = setInterval(someClip, "nextFrame", 1000/fps)

Kenred
10.09.2004, 14:00
Оригинал написал(а) iNils
А почему именно 32 кадра?

ну новая библиотека которую на сайте будут использовать ставит именно 32. Но иногда берут сделанные старыми версиями и там то 12 то еще че-то...

Kenred
10.09.2004, 14:01
Оригинал написал(а) dimarik


Если я правильно понял, то сам звук импортируется в отдельные SWF в режиме дизайна. А "функция перескока на определные участки" - это управление ЗВУКОМ (поиск определенного места композиции, например) из родительской SWF.
Вопрос таков: есть ли возможность не связываться с SWF в которые встроен звук, а использовать прямую загрузку mp3 в объект Sound?

Сам звук конвертируется из mp3 в swf отедльной библиотекой. И весь смысл проекта в том что играются именно SWF -ки.

Kenred
10.09.2004, 14:04
Оригинал написал(а) Nox Noctis
насколько я понимаю, вопрос не в том чтобы узнать фреймрейт мувика, а в том чтобы его проиграть в соответствии со скоростью звуковой дорожки. если можно узнать какой фпс НАДО получить - то есть замечательная функция setInterval :)

someClip.id = setInterval(someClip, "nextFrame", 1000/fps)

нет не так...
там надо всякие расчеты проводить типа сколько секуд будет отображаться на какой кадр прыгнуть и тд а для этого нужно знать frame rate

dimarik
10.09.2004, 14:06
Объясните, пожалуйста, зачем делать "перескоки", обладая при этом знаниями фреймрейта? Это будет VisualisationStudio?

Nox, что такое "скорость звуковой дорожки"??

dimarik
10.09.2004, 14:20
Есть основная SWF-плэйер, в неё грузятся XML-playlist, затем по этому листу прогружаются последовательно музыкальные композиции-SWF. Управление playhead композиций осуществляется из основной SWF, имеющей fps=32. Правильно ли я уловил суть?

Вспоминаем, что fps (каким бы он ни был) всех мувов загруженных в основную SWF преващается в fps этой основной SWF. Так сказала Macromedia.

Kenred
10.09.2004, 14:22
Оригинал написал(а) dimarik
Объясните, пожалуйста, зачем делать "перескоки", обладая при этом знаниями фреймрейта? Это будет VisualisationStudio?


ну вот есть файл в нем например 10 минут звука.... файл разит на фрагменты, например первые минуты одна часть доклада, потом другая, третья и т.д.
Надо чтобы кнопки Вперед Назад перепрыгивали не по различным файлам (как в обычном ВинАмпе) например а по этим фрагментов внутри одного клипа.

Nox Noctis
10.09.2004, 14:24
Оригинал написал(а) dimarik
Nox, что такое "скорость звуковой дорожки"?? скорость подачи звуков, с которыми требуется синхронизировать анимацию. например если надо сделать lipSync - то речь о скорости звучащего текста...

dimarik
10.09.2004, 15:50
ну вот есть файл в нем например 10 минут звука.... файл разит на фрагменты, например первые минуты одна часть доклада, потом другая, третья и т.д.ну вот есть файл в нем например 10 минут звука.... файл разит на фрагменты, например первые минуты одна часть доклада, потом другая, третья и т.д.

А анимация (video) там тоже есть или только звук?
Чекпоинты (начала фрагментов звука доклада) задаются в подгружаемом SWF или в XML?

И все-таки как быть с Вспоминаем, что fps (каким бы он ни был) всех мувов загруженных в основную SWF преващается в fps этой основной SWF. Так сказала Macromedia.?

Kenred
10.09.2004, 16:32
Оригинал написал(а) dimarik

А анимация (video) там тоже есть или только звук?
Чекпоинты (начала фрагментов звука доклада) задаются в подгружаемом SWF или в XML?


чекпоинты задаются в XML...



И все-таки как быть с ?

Вспоминаем, что fps (каким бы он ни был) всех мувов загруженных в основную SWF преващается в fps этой основной SWF. Так сказала Macromedia.


а вот это уже интереснее... Но я вот ща пошел поставил в плеере fps 12 и запустил, а музыка была с 32 fps.... и когда я прыгал по фрагментам то он прыгал по ним как будто их 32. Вот....

Kenred
10.09.2004, 16:35
Я пока могу сказать что на данный момент решил проблему. Тем что по дефолту ставлю 32 а если в XML указано другой fps то беру его.

Но тема интересная и вдруг кому еще сгодиться

dimarik
10.09.2004, 16:43
Каким образом ты узнаёшь FPS?

Kenred
10.09.2004, 16:50
Оригинал написал(а) dimarik
Каким образом ты узнаёшь FPS?
если это вопрос мне то говорю еще раз...
по дефолту = 32
если в XML-ке с плейлистом указан другой беру его.

dimarik
10.09.2004, 17:45
Туплю, прости...