PDA

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


MXPain
10.10.2011, 01:22
подскажите как лучше?

stweet
10.10.2011, 01:35
а можно узнать как есть?

MXPain
10.10.2011, 02:13
скажем что никак.

farox
10.10.2011, 12:20
под PHP использовал библиотеку, делал запрос из swf к скрипту, лежащему на сервере, скрипт смотрел мета данные и возвращал swf'ке

wvxvw
10.10.2011, 13:43
Идея потоковой загрузки в том, что загружаемый поток может быть условно бесконечным. Так что, да, так как говорит farox, посчитайте на сервере и отправьте вместе со звуком, может плейлист, может ID3, если такой тег есть.

illuzor
10.10.2011, 14:49
Можно длину рассчитать. До загрузки вычисляем отношение загруженных байт к общему количеству байт. Затем длину трека(загруженную на данный момент) делим на полученное значение.

Способ костыльный, но рассчитывает довольно точно

wvxvw
10.10.2011, 18:48
Так как вы предлагаете - может не получится, если, например, используется MP3 с переменным битрейтом. В нем нет постоянного соответсвия количество байт / длина.

MXPain
11.10.2011, 12:23
спасибо за дельные советы, я пока сделал вот так

//вызываем подсчет
var dur:Number = calculateTotalTime(_sound.bytesTotal)

//степень сжатия мп3
private var rate:uint = 128;
private function calculateTotalTime(total:Number):Number
{
//1 кбит=128 бит
return total/(128*rate);
}

ну естественно это если исходить из того что файл с постоянным cbr, но для моей задачи самое то

Genzo
11.10.2011, 12:43
Не проще заголовок файла прочитать и все?
http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Mp3filestructure.svg/2000px-Mp3filestructure.svg.png

//1 кбит=128 бит
опечаточка вышла)