Просмотр полной версии : Не могу заставить стримиться внешний аудиофайл
LanVision
20.03.2009, 14:14
Хело.
Вот код:
var sound = new Sound();
sound.onLoad = function(success)
{
if(success)
{
trace("Yup, loded");
sound.start();
}
else trace("Sumtin went rong");
}
sound.loadSound("after_all.mp3", true);
По идее, должен начать стримиться и играть файл after_all.mp3, который находится рядом с исполняемым swf. Но не играет. Трейс выдает "Yup, loded", но звука то нет. Если заменить ("after_all.mp3", true); на ("after_all.mp3", false);, то файл загружается и играет, то есть путь к файлу нормальный, файл тоже нормальный, колонки включены (:quiet: ). Но мне то надо, чтобы он стримился... Не понимаю...
Спасибо!
Может, не хватает sound.start()?
LanVision
20.03.2009, 17:50
а вот же он, прямо после trace("Yup, loded");. Должен срабатывать в том момент, когда будет скачано достаточно байт песни, чтобы запустить mp3 декомпрессор.
if(success)
{
trace("Yup, loded");
sound.start();
}
onLoad (Sound.onLoad handler)
onLoad = function(success:Boolean) {}
Invoked automatically when a sound loads.
А если так? =)
sound.loadSound("after_all.mp3", true);
sound.start();
P.S. А трейс срабатывает после загрузки "достаточного байт песни"?
LanVision
20.03.2009, 21:56
1) Не помогает. Как я понимаю, в вашем варианте, скрипт пытается воспроизвести файл сразу после начала загрузки, а это всего доля секунды (особенно, при 50 кадрах в секунду).
2) Да, трейс срабатывает, как ни странно.
Добавлено через 2 минуты
Всё, дошло, сам я дурак. Засунул это всё дело в onEnterFrame(); зачем-то. Сорри, недоглядел.
djyamato
08.04.2009, 19:02
так при стримовом звуке начинается же проигрывание даже без start
И событие onLoad перебивает Ваш стримовость - об_ект Sound ждет пока не загрузится весь стрим и не запускает
Минус: Вы не сможете до окончания буфферизации узнать duration
Вот код (у меня работает)
var mySound=new Sound();
mySound.onLoad=function(){
trace("buffered OK");
}
mySound.loadSound("test.mp3",true);
А судя из Вашего кода стрим 2 раза начнет проигрываться с самого начала (1й раз при mySound.loadSound а второй раз при событии onLoad)
LanVision
09.04.2009, 01:37
Спасибо, но, насколько я понимаю, onLoad() в случае со стримом срабатывает в тот момент, когда звуковой файл загрузился в том объеме, которого достаточно для запуска аудио-декомпрессора.
В любом случае проблема была в простой ошибке (случайно засунул это всё дело в onEnterFrame() ).
djyamato
11.04.2009, 16:56
...насколько я понимаю, onLoad() в случае со стримом срабатывает в тот момент, когда звуковой файл загрузился в том объеме, которого достаточно для запуска аудио-декомпрессора.
"Invoked automatically when a sound loads" (рид зэ факинг мануал)
То есть это событие возникнет в тот момент времени когда файл ПОЛНОСТЬЮ забуфферизируется (то есть загрузится)
В случае стримового звука он действительно стартует в тот момент когда загрузилась часть достаточная для декомпрессии(если Вы конечно ничего со звуком не делали: start stop)
Возможно событие onID может помочь со стартом но тэги могут быть записаны и в конце мп3шки
MyChemic
11.04.2009, 17:40
sound.start(0, 9999);
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.