Графика в яваскрипт
Простите пожалуйста. Знаю, что не туда залез, но информация нужна как воздух. Объясню сразу всю суть дела.
Заходишь на сайт, включаешь любой трек на нем. В этот момент, между двумя определенными точками начинает двигаться его аудиоволна, как в программах работы со звуком. Скажите пожалуйста, какие разделы яваскрипт программирования надо изучить, чтобы создать это? Чтобы перелопатить все и найти интересующий нет времени, поэтому и обращаюсь. Еще раз извеняюсь. |
В JavaScript пока такого нет, копайте в сторону ActionScript
|
Такого в JS не сделать. Если только отдельно не сохранять информацию об уровне звука в каждый момент времени.
Или ковырять файл и анализировать его (не знаю, получится ли из полученных данных построить его "волну"), что нудно и сложно. |
Что-то типо такого на ActionScript:
var url:String = "song.mp3"; //путь к файлу var request:URLRequest = new URLRequest(url); var s:Sound = new Sound(); s.addEventListener(Event.COMPLETE, completeHandler); s.load(request); var song:SoundChannel = s.play(); song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); var ba:ByteArray = new ByteArray(); var gr:Sprite = new Sprite(); gr.x = 20; gr.y = 200; addChild(gr); var time:Timer = new Timer(50); time.addEventListener(TimerEvent.TIMER, timerHandler); time.start(); function completeHandler(event:Event):void { event.target.play(); } function soundCompleteHandler(event:Event):void { time.stop(); } function timerHandler(event:TimerEvent):void { SoundMixer.computeSpectrum(ba, true); var i:int; gr.graphics.clear(); gr.graphics.lineStyle(0, 0xFF0000); gr.graphics.beginFill(0xFF0000); gr.graphics.moveTo(0, 0); var wave:int = 2; for (i=0; i<512; i+=wave) { var t:Number = ba.readFloat(); var n:Number = (t * 100); gr.graphics.drawRect(i, 0, wave, -n); } Кстати вот пример А вот тут подробности реализации |
Спасибо огромное=) значит это не яваскрипт. Хоть эту на эту загадку я узнал ответ.
|
Часовой пояс GMT +3, время: 11:28. |