PDA

Просмотр полной версии : таймер музыки


villa
25.11.2005, 14:37
Есть вот такой код, что в нём не правильно?


this.createTextField("timer_txt", this.getNextHighestDepth(), 270, 130, 150, 80);
track_txt.selectable = false;
var my_interval:Number;
var my_sound:Sound = new Sound();
function updateTimeBar(my_sound):Void {
var pos:Number = Math.round(my_sound.duration-my_sound.position)/1000;
var minutes:Number = Math.floor(pos/60);
var seconds = Math.floor(pos)%60;
if (seconds<10) {
seconds = "0"+seconds;
}
timer_txt.text = minutes+":"+seconds;
timer_txt.setTextFormat(myformat2);
}
my_interval = setInterval(updateTimeBar, 100, my_sound);
my_sound.loadSound("track01.mp3", true);

motor4ik
25.11.2005, 16:37
хм, а сам что проверить не можешь? или тут викторина или чего? задачки решаем? бери да тестируй, trace() на что тебе...

antonyrec
25.11.2005, 16:53
Код рабочий. Показывает обратный отсчет правильно. Проверил.
2villa: а что, у тебя не работает? или в чем-то другом проблема?

villa
25.11.2005, 17:15
Код рабочий. Показывает обратный отсчет правильно. Проверил.
2villa: а что, у тебя не работает? или в чем-то другом проблема?
проблема в том, что трэк подгружается методом true, т.е. и играет и догружается
одновременно. И в режиме симуляции загрузки с этим таймером начинается беда.

antonyrec
25.11.2005, 17:34
В хелпе посмотри sound.duration. Там есть пример, который возможно тебе пригодится. Там правда не совсем таймер. Но вдруг...

villa
25.11.2005, 17:48
по нему и писал

antonyrec
25.11.2005, 18:13
Дело видимо в том, что плеер не знает длительность звука пока он не загружен полностью.

KUZEN
25.11.2005, 18:16
Смотрим хелп id3 (Sound.id3 property) там есть TIME ...

villa
25.11.2005, 18:17
Дело видимо в том, что плеер не знает длительность звука пока он не загружен полностью.
Вот,вот.
А почему my_sound.id3.TIME пишет undefined не знаешь?

KUZEN
25.11.2005, 19:17
Вся фишка в том что при созданиии mp3 не всегда указывается группа и т.п. попробуй протрейсить свой файл на наличие таких данных и если там есть TIME то он будет работать ...

var my_sound:Sound = new Sound();
my_sound.onID3 = function() {
for (var prop in this.id3) {
trace(prop);
}
my_sound.loadSound("song.mp3", true);
};

antonyrec
25.11.2005, 19:22
Да, про id3 как-то забыл. Но штуку с длительностью помню. Тоже в прошлый раз не получилось взять длину из id3.

KUZEN
25.11.2005, 19:23
Я вот щас трейсу свои муз файлы и пока не в одном не нашёл TIME ...
если наёдёшь просто замени в коде и протрейси

trace(this.id3.TIME);
/*for (var prop in this.id3) {
trace(prop);
}*/

antonyrec
25.11.2005, 19:29
Нимогу найти не TIME не TLEN ни в одном из своих mp3. Протестил файлов 15

KUZEN
25.11.2005, 19:31
таже фигня, а в половине вообще ничего нет )))

antonyrec
25.11.2005, 19:38
Как же быть?... Не забивать же вручную длительность mp3'шек. Хотя, если она одна...

__i
25.11.2005, 19:38
а как его начинаеи глючить?
опиши, просто я тут на днях такое делал, тоже бока были с duration

antonyrec
25.11.2005, 19:40
Можно конечно длительности хранить в xml... Но обидно реально, что не пашет :(

antonyrec
25.11.2005, 19:43
а как его начинаеи глючить?
опиши, просто я тут на днях такое делал, тоже бока были с duration

Из-за того, что плеер не может узнать длину звука до его полной загрузки таймер работает не корректно (опять же до полной загрузки. Дальше все намана)

KUZEN
25.11.2005, 19:44
Надо намутить редактор mp3 иручками помравлять там всё ...

__i
25.11.2005, 19:47
ну а дождаться полной загрузки а потом играть слабо ?

KUZEN
25.11.2005, 19:49
Тут проигрывание начинается до полной загрузки

antonyrec
25.11.2005, 19:49
Вопрос "в принципе" интересует. После загрузки каждй д. может :)

KUZEN
25.11.2005, 19:50
Щас поищу какой нибудь редактор тегов mp3 может чего удасться поправить ...

antonyrec
25.11.2005, 19:52
В mp3 вручную длительность не указывается. Это просто параметр для чтения

TERRORist
25.11.2005, 19:52
Так надо вроде по событию загрузки начинать скрипт. Помойму Sound.onLoad()

antonyrec
25.11.2005, 19:54
А вот на счет поправить... можно поискать. Может как-нибудь особенно macromedia mp3'шки делала :)

__i
25.11.2005, 19:55
у меня тоже был бок - не правильно определялась эта самая дюратион, вся загвоздка оказалась в sound.loadSound(url, true) а было falsh

antonyrec
25.11.2005, 19:55
Так надо вроде по событию загрузки начинать скрипт. Помойму Sound.onLoad()

Ты выше читал?

KUZEN
25.11.2005, 20:02
Ты выше читал?
А зачем он и так всё понял )))

villa
26.11.2005, 13:26
в завершение это темы могу сказать только одно -
нефиг мудохпться с обратным таймером!
Польтзуйте прямой:
var my_interval:Number;
var my_sound:Sound = new Sound();
function updateTimeBar(my_sound):Void {
var pos:Number = Math.round(my_sound.position)/1000;
var minutes:Number = Math.floor(pos/60);
var seconds = Math.floor(pos)%60;
if (seconds<10) {
seconds = "0"+seconds;
}
timer_txt.text = minutes+":"+seconds;
timer_txt.setTextFormat(myformat2);
}
my_interval = setInterval(updateTimeBar, 100, my_sound);

Вот и всё!

petyar
27.11.2005, 09:40
Я как-то делал mp3 плеер на флеше, конечно бесполезно, но может кое-
чем помочь :) Если нужны коды, выкину исходник с предварительно
убранной графикой (качество jpeg поставил на 10... Пришлось)

iNils
27.11.2005, 13:31
У mp3 есть ID3 теги двух версий 1 и 2.
Флеш-плеер 7 поддерживает версии 1.0, 1.1, 2.3, 2.4
Версия 1 храниться в конце файла и пока файл не считан они не доступны.
Версия 2 храниться в начале (от этого когда проигрывается файл и обновляется теги данной версии, проигрывание сбивается).

ID3.TLEN это тег версии 2. Нужен софт записывающий данный тег (winamp его не пишет)

villa
27.11.2005, 16:12
У mp3 есть ID3 теги двух версий 1 и 2.
Флеш-плеер 7 поддерживает версии 1.0, 1.1, 2.3, 2.4
Версия 1 храниться в конце файла и пока файл не считан они не доступны.
Версия 2 храниться в начале (от этого когда проигрывается файл и обновляется теги данной версии, проигрывание сбивается).

ID3.TLEN это тег версии 2. Нужен софт записывающий данный тег (winamp его не пишет)

С этим я согласен, но на сколько я понял id3.TIME есть только в первой
версии и как ты говоришь, он находится в конце. Во воторой версии его нет вообще (ну или Flash с ним не работает). Плоучается, что во Flash
оьратный таймер для my_sound.loadSound("track01.mp3", ture); не возможно.
Неужели никто с этим не сталкивался?

iNils
27.11.2005, 16:27
Здесь ты найдешь перечь тегов по версиям http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/ID3.html
И там видно, что тег time, относиться ко второй версии.

Сделать обратный отсчет времени, для не полностью загруженных mp3, можно либо используя теги версии 2, либо подгружая дополнительную информацию о времени

Easter
03.12.2005, 13:04
Вся фишка в том что при созданиии mp3 не всегда указывается группа и т.п. попробуй протрейсить свой файл на наличие таких данных и если там есть TIME то он будет работать ...


А, если пишет undefined, значит их там нет? Ни в какой версии тэгов (1.0, 2.0)?