Есть некоторое количество способов проиграть MP3 сразу после загрузки. Но каждый из них сводится к вызову внешнего проигрывателя, будь то MediaPlayer, RealPlayer, SilverLight, Flash или что-нибудь еще… Лично я остановился на Adobe Flash. Он установлен на машинах 98% пользователей Интернета и его очень легко использовать. С начала я нашел несколько интересных API для проигрывания музыки во Flash, но с управлением из JavaScript.
Одним из популярнейших проигрывателей является XSPF Web Music Player. Но это не совсем то, что нужно было мне. Во первых, управление находится во Flash, и требует PlayList. Это подходит только для проигрывания песен.
Еще один, это SoundManager. Который помимо основной функции позволяет менять громкость и баланс звучания. Очень прост в использовании, если вам нужно сделать собственные звуки на нажатие кнопок или что-то на подобие еще. Правда есть одно серьезное ограничение, из за которого для меня этот API не подошел. Дело в том, что для начала проигрывания файлов он должен загрузить плеер. Это не позволяет проигрывать музыку в событии onLoad тега BODY.
После своих изысканий я понял, что мне нужен супер простой плеер, который только будет проигрывать музыку без всяких наворотов. Моим решением был следующий код, для MTASC-а:
class Main{
public static function main():Void
{
var times = _root.times;
if (times == undefined) times = 1;
var sound_mc:MovieClip = _root.createEmptyMovieClip(«sound_mc», 1);
debug(«»+_root.file);
var s:Sound = new Sound(sound_mc);
sound_mc.onEnterFrame = function() {
if(s.getBytesTotal()>0 && s.getBytesLoaded()==s.getBytesTotal()) {
s.start(0, times);
sound_mc.onEnterFrame = null;
Main.debug(«»+_root.file + » play times:» + times + » size:» + s.getBytesTotal());
}
}
s.loadSound(_root.file, false);
}
public static function debug(str:String):Void {
if (_root.debug.length) {
getURL(«javascript:alert(\»«+str+«\»)»);
}
}
}
Этот код просто получает в качестве параметра файл, который нужно проиграть, мой проигрыватель таким образом весит меньше 2кб. Вот и все.
Скачать код с примером можно с Filebase
>>
id=«flashcontent»>>
var so = new SWFObject(«audioPlayer.swf», «audioPlayer», «1», «1», «8», «#FFFFFF»);
so.addParam(«wmode», «transparent»);
so.addVariable(«file», «play.mp3»);
so.write(«flashcontent»);
>
>
Исходной код проекта можно скачать здесь.
// ]]>
Метки:Flash, HTML, разработка
Похожие статьи
- 6 февраля 2009 -- Загрузка Flash в Windows.Forms и WPF. (2)
- 1 октября 2008 -- Видеоплееры на Flash (0)
- 26 июня 2008 -- Эффекты для вебкамеры на Flash. (0)
18 февраля, 2010 at 8:12
Информация интересная , думаю достоверная , подходящая для практического применения.