Pull to refresh

Скроблинг last.fm и HTML5 player на molpa

Reading time2 min
Views2.1K
image

Привет.

Я уже дважды писал на хабре о своем мэшапе для прослушивания музыки по альбомам — molpa.ru, над которым я активно работаю. Сегодня мне хотелось бы рассказать о нововведениях на нем и технических моментов их реализации.

Скроблинг last.fm


Несмотря на очень даже простое и приятное API last.fm, скроблинг в last.fm зачем-то обособлен и, мягко говоря, неудобен в использовании, никаких тут jsonp и crossdomain, получайте обычный POST который не так-то уж и просто отправить средствами браузера.

Единственный способ который я нашел позволял это сделать это отправка POST через скрытый iframe, примерно таким образом:

$("body").append('<div id="hide"></div>')
        .find("#hide").html("").hide()
        .append('<iframe name="fm"></iframe><form id="send" target="fm" method="POST" action="http://ws.audioscrobbler.com/2.0/"></form>');
 
for(in post){
        $("#send").append('<input name="' + n + '" value="' + post[n] + '" type="hidden"/>');
}
 
$("#send").submit();

Довольно дурацкий способ, при вполне юзабельных ему альтернативах.


HTML5 player


Что-бы идти в ногу со временем, я решил установить на сайт HTML5 player, с откатом на flash для старых браузеров, первым претендентом был плеер Soundmanager, но он оказался слишком громоздким, проект я планирую оптимизировать под мобильные браузеры, а там такая махина ни к чему.

Поискав еще какое-то время, я взялся за написание своего плеера, я запланировал его делать как обработчик поверх объекта HTML5 — audio, с полной эмуляцией этого объекта средствами FLASH, первая версия этого творения занимала всего около(точно уже не припомню) пяти килобайт флеша и примерно столько несжатого кода на js, я был просто в восторге. ActionScript — оказался довольно не сложный и приятным языком.

Но однажды во время доработки моего плеера, изучая различные материалы по JS и AS, я наткнулся на готовый плеер который делает, в принципе тоже самое, что я хотел делать в своем, и был хорошо документирован. В итоге я решил не дописывать свой велосипед, а использовать уже готовое решение.


Планы на будущее


В мои планы теперь входит отрисовка нового универсального интерфейса, который можно будет одинаково удобно использовать как в мобильных браузерах, так и в браузерах ПК.
Так же я планирую начать оптимизацию своего кода, хотелось бы одновременно уменьшить его размер и увеличить производительность, или хотя бы найти идеальный баланс :)

Надеюсь, мой опыт был вам хоть немного полезен ;)
Tags:
Hubs:
+14
Comments12

Articles

Change theme settings