[Widget] RMF RDS

w dziale Aplikacje dla Opery
eXtremo napisał(a):

Witam. RMF RDS Widget to mój pierwszy Widżet do Opery. Nim umieszczę go na widgets.opera.com chciałbym dać go wam do testów.



Jak widać wyżej plugin ten wyświetla aktualnie grany utwór, wraz z okładką płyty na wybranej stacji. Dodatkowo wyświetlana jest playlista. Obie belki: górną i dolną można schować, zostawiając sam żółty pasek. Informacje pobierane są z nowego serwisu RMF-u - MiastoMuzyki.pl (mam nadzieję, że się nie obrażą wink), widżet obsługuje wszystkie 10 stacji tam dostępnych (lista jest u nich na stronie) a stacje w widżecie zmienić można w opcjach. Obsługiwane jest głosowanie na utwór (gwiazdki), klikając na wykonawcę zostaniemy przeniesieni na stronę RMF-u z opisem (biografią, dyskografi, historią itd.) danego wykonawcy. Klikając na logo lub nazwę stacji otwierane jest okienko miastamuzyki.pl z playerem, dzięki któremu będziemy mogli posłuchać danej stacji. Ikonka WMP odsyła nas bezpośrednio do streamingu .asx (trzeba zdefiniować w Narzędzia->Zaawansowane->Pobieranie domyślną aplikację dla MIME "application/x-mplayer2" - np. WMP albo Winampa).

Tak więc widget nie jest wyposażony we własnego playera. wink Może kiedyś w przyszłości, jak będę wiedział jak to zrobić.

Inne stacje niż te z MiastaMuzki.pl nie będą obsługiwane, chyba, że ktoś znajdzie skąd można pobrać podobnego typu informacje (utwór, okładka, playlista).

Podczas ukrywania/pokazywania belek z utworem i playlistą miała być ładna animacja, ale biblioteka animacji Opery nie obsługuje "wyjeżdżania" diva do góry (jest tylko slide wysokości w dół), a opacity gryzie się z przezroczystością w PNG. Więc nie ma.

Widżet nie był testowany na Linuksie, ba, nie ma zdefiniowanych nawet czcionek dla Linuksa (bo są Windowsowy Arial i Tahoma), bo prawdę mówiąc - nie wiem jakich użyć w zamian. Proszę o rady.

Znany błąd: akcje klikania w przyciski (i linki) nie "zaskakują" za pierwszym razem po załadowaniu widżeta i nie mam pojęcia dlaczego. Zawsze jest albo href, albo zdarzenie onclick (niezależnie czy wpisane w HTML-u czy przez addEventListener w JS). Dopiero za drugim, trzecim kliknięciem działają. Jeśli ktoś wie jak sobie z tym poradzić - będę wdzięczny za rady.

DOWNLOAD 1.0 beta - uruchom

Widget do użycia w trybie deweloperskim bigsmile (trzeba rozpakować tego zipa gdziekolwiek, następnie "przeciągnąć" plik config.xml do okna Opery i "upuścić" gdzieś w treści).

Chyba o niczym nie zapomniałem. p

Czekam na uwagi i sugestie.

szyk napisał(a):

Testowane na Linuksie:

1) Czcionki są ładne, ale zależą od ustawionej minimalnej wielkości w preferencjach, więc przy dużej czcionce lista nie mieści się w widżecie (dla wysokości 14 siódma pozycja na liście wychodzi na czarnym obramowaniu), ale pewnie tego się nie przeskoczy. smile
2) Scroll w dół zmniejsza wysokość widżetu, nie wiem, jak z powrotem zwiększyć.
3) Obramowanie jest czarne i grube, a nie takie ładne i przeźroczyste, jak na zrzucie ekranu. wink

Originally posted by eXtreme_pl:

Tak więc widget nie jest wyposażony we własnego playera.


Można by zrobić podobny myk do tego, jaki jest w Video Managerze: http://widgets.opera.com/widget/5953 - po zaznaczeniu w opcjach odtwarzania w widżecie.

d.i.z. napisał(a):

Widget prezentuje się bardzo ładnie, jak sam robiłeś grafikę to gratulacje.

Jeżeli chodzi o problem z klikaniem to pewnie pomoże ustawienie onmousedown zamiast onclick (zgłaszałem kiedyś ten bug).

A co do animacji wysuwania w górę to może spróbuj jednocześnie animować własność 'top' i 'height'.

Originally posted by eXtreme_pl:

Tak więc widget nie jest wyposażony we własnego playera. Może kiedyś w przyszłości, jak będę wiedział jak to zrobić.


A tak jak na oryginalnej stronie się nie da? Tzn. utworzyć kontrolkę WMP z odpowiednim adresem. Nawet może być gdzieś ukryta a tylko przyciski do sterowania były by na wierzu (przy włączonej Javie można sterować pluginem WMP).

Originally posted by szyk:

Obramowanie jest czarne i grube, a nie takie ładne i przeźroczyste, jak na zrzucie ekranu.


Na linuxie nie bardzo działa alpha przezroczystość.

krzychoocpp napisał(a):

Originally posted by eXtreme_pl:

Spróbowałem wstawić WMP ale po prostu się nie wyświetlał. Może widżety nie mogą pluginu WMP używać?


Mogą, sprawdziłem, taki embed działa:
<embed type="application/x-mplayer2" 
                pluginspage ="http://www.microsoft.com/Windows/MediaPlayer/"
                SRC="http://www.wi.ps.pl/html/multimed/irishs.mp3"
                name="MediaPlayer1"
                width=280
                height=45
                AutoStart=true>
                </embed>

Nie mogłem rozpracować, jak wstawić przez object, ale pewnie też się da. Sprawdzałem na Linuksie - działa. Pamiętam że z Flashem w Video Managerze miałem dużo dziwnych problemów pod Windows, pod Linukem i Maciem działało bez problemów.

d.i.z. napisał(a):

Originally posted by eXtreme_pl:

Hm, no faktycznie, jak użyłem onmousedown to w przypadku ukrywania playlisty i "teraz gramy" to działa za pierwszym kliknięciem, ale pokazywanie ustawień i about - już nie.


Elementy po załadowaniu nie mają ustawionej własności display w javascripcie dlatego zakładając, że okno opcji jest schowane po załadowaniu, proponuje zmienić warunek na:
if ( #settings.style.display == 'block' )
 hide();
else
 show();

Można też, bardziej poprawnie, sprawdzać wygenerowany styl przez wlasność elem.currentStyle.display, która pokaże faktyczny stan. Jednak ta pierwsza metoda powinna wystarczyć i jest o te milisekundy szybsza.

I lepiej żeby pliki w zipie nie znajdowały się w katalogu. Był z tym związany jakiś bug, nie wiem czy już poprawiony.

d.i.z. napisał(a):

Originally posted by eXtreme_pl:

Ale dalej pozostaje nierozwiązana kwestia problemów ze zmianą stacji po inicjacji OAnimacji...


Jak się nie znajdzie rozwiązanie do wieczora to może spróbuję zerknąć.

eXtremo napisał(a):

Dzięki za komentarze.

Originally posted by szyk:

1) Czcionki są ładne, ale zależą od ustawionej minimalnej wielkości w preferencjach, więc przy dużej czcionce lista nie mieści się w widżecie (dla wysokości 14 siódma pozycja na liście wychodzi na czarnym obramowaniu), ale pewnie tego się nie przeskoczy.


Czyli co? Mam zostawić jak jest? Zresztą - skoro alpha w png nie działa to i tak nie ma sensu tego używać, chyba że komuś nie przeszkadza wielka czarna ramka. wink

Originally posted by szyk:

Można by zrobić podobny myk do tego, jaki jest w Video Managerze: http://widgets.opera.com/widget/5953 - po zaznaczeniu w opcjach odtwarzania w widżecie.


Tak, ale tam jest przecież wstawiany obiekt flasha, a nie player WMP (patrz niżej).

Originally posted by d.i.z.:

Widget prezentuje się bardzo ładnie, jak sam robiłeś grafikę to gratulacje.


Dziękuję smile Tak, sam robiłem.

Originally posted by d.i.z.:

Jeżeli chodzi o problem z klikaniem to pewnie pomoże ustawienie onmousedown zamiast onclick (zgłaszałem kiedyś ten bug).


Hm, no faktycznie, jak użyłem onmousedown to w przypadku ukrywania playlisty i "teraz gramy" to działa za pierwszym kliknięciem, ale pokazywanie ustawień i about - już nie. confused

Originally posted by d.i.z.:

A co do animacji wysuwania w górę to może spróbuj jednocześnie animować własność 'top' i 'height'.


Z tym top to dobry pomysł. I faktycznie działa i to nawet fajniej niż animacja height (właśnie o taki efekt wysuwania mi chodziło z pierwotnych założeniach).

Originally posted by d.i.z.:

A tak jak na oryginalnej stronie się nie da? Tzn. utworzyć kontrolkę WMP z odpowiednim adresem. Nawet może być gdzieś ukryta a tylko przyciski do sterowania były by na wierzu (przy włączonej Javie można sterować pluginem WMP).


Spróbowałem wstawić <object> WMP ale po prostu się nie wyświetlał. Może widżety nie mogą pluginu WMP używać?

---

Wszystko fajnie, zrobiłem animacje ale pojawił się dość nietypowy problem. Jeśli stworzę obiekty OAnimacji dla diva z "Teraz gramy" poprzez
animNP = getOne(cssQuery('#nowplaying')).createAnimation();
To.. psuje się zmieniarka stacji. Tzn niby ogólnie stacja się zmienia, ale nie aktualizują się i nie czyszczą wszystkie "pola" (w tym nazwa stacji, aktualny utwór)

Link do testów poniżej:

Pobierz źródła 1.0 beta2b - uruchom

W przypadku wersji odpalanej ze źródeł dla testów można zakomentować w widget.js, na dole dwie linijki:
animNP = getOne(cssQuery('#nowplaying')).createAnimation();
animNP.speed = 6;
celem sprawdzenia czy zmiana stacji działa po wyłączeniu tworzenia animacji.

[edit]
Wyżej ciut nowsza wersja z poprawionym bugiem klikania

eXtremo napisał(a):

Hmm no faktycznie - z <embed> nie próbowałem ale.. nie wiem jak u innych, ale gdy wstawię to <embed> to owszem - muzyka gra. Ale nie wyświetla się widżet - tzn jest cały biały w obszarze zdefiniowanym w config.xml. Próbowałem jakoś ukrywać go, chować, wyłączać, ale widać przeszkadza sama jego obecność. Nie ma możliwości wyłączenia go inaczej jak poprzez Menedżer Widżetów.

[edit]
W poprzednim poście jest link do bety2 - uaktualniłem. W index.html na dole jest div#hidden - można odkomentować znacznik <embed> i sprawdzić czy działa, bo u mnie efekt jak wyżej.


----

Originally posted by d.i.z.:

Elementy po załadowaniu nie mają ustawionej własności display w javascripcie dlatego zakładając, że okno opcji jest schowane po załadowaniu, proponuje zmienić warunek na:


Faktycznie, thx. Wstawiłem do eventu load
getOne(cssQuery('#playlist')).style.display = 'block';
	getOne(cssQuery('#about')).style.display = 'none';
	getOne(cssQuery('#settings')).style.display = 'none';

I śmiga. smile Ale dalej pozostaje nierozwiązana kwestia problemów ze zmianą stacji po inicjacji OAnimacji...

d.i.z. napisał(a):

  1. setInterval('Rds.update()', 20000); => setInterval(Rds.update, 20000);
  2. textContent cosik głupieje, użyj text, innerText albo innerHTML.
  3. Niestety poddaje się co do tego pluginu WMP. Różne rzeczy probowałem ale nic z tego nie wychodzi. Podejrzewam, że chodziło by jeżeli plugin wspierał by transparent wmode.

eXtremo napisał(a):

Originally posted by d.i.z.:

1) setInterval('Rds.update()', 20000); => setInterval(Rds.update, 20000);
2) textContent cosik głupieje, użyj text, innerText albo innerHTML.


Faktycznie, pomogło smile textContent używałem, bo tak było w tutku. smile

Originally posted by d.i.z.:

Niestety poddaje się co do tego pluginu WMP. Różne rzeczy probowałem ale nic z tego nie wychodzi. Podejrzewam, że chodziło by jeżeli plugin wspierał by transparent wmode.



No to playerka nie będzie.. no ale nie ma co płakać - linki do uruchomienia odgrywania są w widżecie. Można odpalać i player www, i streaming z .asx tylko należy pamiętać o skonfigurowaniu mime "application/x-mplayer2" w Operze.

Big thx d.i.z. za pomoc wink

Wersja 1.0

Czas to teraz wrzucić na widgets.opera.com wink

[edit]
http://widgets.opera.com/widget/7354

d.i.z. napisał(a):

Nie ma sprawy i też dzięki smile

Krolik napisał(a):

Mi po załadowaniu sie piosenki nic nie idzie :/

Jurek69 napisał(a):

Po zmianie ustawień "application/x-mplayer2" na Winamp zniknął głos w teledyskach w interii i onecie.sad

eXtremo napisał(a):

Originally posted by Krolik:

Mi po załadowaniu sie piosenki nic nie idzie :/


Co nic nie idzie? Nie odświeża się? Czy chodzi ci o muzykę? Ten widżet nie odtwarza muzyki! On pokazuje jedynie informacje o piosenkach.

Originally posted by Jurek69:

Po zmianie ustawień "application/x-mplayer2" na Winamp zniknął głos w teledyskach w interii i onecie.


Hmm no to widać nie ma innej możliwości jak ustawić sobie Windows Media Player. Możesz też całkowicie usunąć przypisanie jakiejkolwiek aplikacji, to adres streamingu otworzy ci się w Operze - wtedy będziesz mógł skopiować adres do Winampa.
Ja umywam ręce, bo to nie zależy od widżetu.

Krolik napisał(a):

Mój problem rozwiazany p

eXtremo napisał(a):

Jest jeszcze taka jedna sprawa odnośnie informacji ze stacji RMF FM. Cóż.. czasami coś im na miastomuzyki.pl wysiada i dane te mogą być nieaktualne. (Podczas tworzenia widżetu trzy razy miałem taką sytuację, że, choć na zegarze była 18:00 to playlista stała na godzinie np. 9:30) Ale nic na to nie poradzę, trzeba słać maile do RMF-u. p

Jurek69 napisał(a):

Dzięki za odpowiedź. Wróciłem do wcześniejszych ustawień i jest OK. Muzykę odtwarzam w grajku na stronie RMF. Poza tym widżet fajnie wygląda i zostanie u mnie na stałe. Pozdrawiam.

Rouge napisał(a):

Bardzo fajny widżet - oczywiście u mnie zostaje na stałe. Myślę, że warto myśleć o stopniowym rozwijaniu go, np. o wbudowany player, czy inne funkcjonalności strony RMF.
Ja osobiście ścieżki wrzuciłem sobie do Winampa. Swoją drogą, w przypadku odtwarzania stacji "tematycznych", pojawiają mi się straszne zaburzenia dźwięku - Wam też?

eXtremo napisał(a):

No, wbudowany player jest w planach, ale póki widżety nie mają dostępu do pluginów (np. odtwarzacza WMP) [albo raczej - prawidłowej ich obsługi wink], dopóty go nie będzie, bo nie mam innego pomysłu jak to inaczej zrobić.

Właśnie, jeśli ktoś chce tak jak powyżej Rouge wpisać sobie wszystkie ścieżki do odtwarzacza, to tu jest lista stacji: (nie będę opisywał która to która, bo to chyba widać wink)

  1. http://miastomuzyki.pl/rmfrock.asx
  2. http://miastomuzyki.pl/rmfclassicrock.asx
  3. http://miastomuzyki.pl/rmfdance.asx
  4. http://miastomuzyki.pl/rmfrnb.asx
  5. http://miastomuzyki.pl/rmffm.asx
  6. http://miastomuzyki.pl/rmfmaxxx.asx
  7. http://miastomuzyki.pl/rmfclassic.asx
  8. http://miastomuzyki.pl/rmfpoplista.asx
  9. http://miastomuzyki.pl/rmfpprzeboje.asx
  10. http://miastomuzyki.pl/rmfsprzeboje.asx


Co do innych funkcjonalności strony RMF - co masz na myśli? "Archiwum dźwięków"? Czy coś innego?

Originally posted by Rouge:

Swoją drogą, w przypadku odtwarzania stacji "tematycznych", pojawiają mi się straszne zaburzenia dźwięku - Wam też?


Tzn. wiesz.. to jest streaming przez internet, nie będziesz miał takiej jakości jak normalnie przez fale radiowe czy z płyty/mp3. To raczej nie jest do słuchania z muzyką na max. głośność, tylko raczej, żeby gdzieś w tle pogrywało podczas pracy przy komputerze. wink Kto wie, może w przyszłości miastomuzyki.pl postara się o dodatkowy streaming w wyższej jakości.

Rouge napisał(a):

Originally posted by eXtreme_pl:

(...)
Tzn. wiesz.. to jest streaming przez internet, nie będziesz miał takiej jakości jak normalnie przez fale radiowe czy z płyty/mp3. To raczej nie jest do słuchania z muzyką na max. głośność, tylko raczej, żeby gdzieś w tle pogrywało podczas pracy przy komputerze. wink Kto wie, może w przyszłości miastomuzyki.pl postara się o dodatkowy streaming w wyższej jakości.


Zdaje sobie z tego sprawę, ale na szczęście problem występuje tylko w przypadku stacji tematycznych (POPlista, Dance, Rock itp.). Po paru sekundach słuchania dźwięk zlewa się w jeden wielki fałsz, a w koputerze zaczyna coś piszczeć (zapewne karta dźwiękowa).

Originally posted by "eXtreme_pl":

(...)
Co do innych funkcjonalności strony RMF - co masz na myśli? "Archiwum dźwięków"? (...)


Dokładnie tak.

A może spróbowałbyś zmajstrować widżeta ZET RDS, który obejmowałby stacje grupy Eurozet, czyli Radio ZET, Radiostacja, Radio PLUS. Na ich stronach też znajdują się informacje o aktualnie granych utworach. Nie ma oczywiście tak zaawansowanych danych o piosence i wykonawcy jak w przypadku RMF, ale zawsze coś... smile

eXtremo napisał(a):

Originally posted by Rouge:

Po paru sekundach słuchania dźwięk zlewa się w jeden wielki fałsz, a w koputerze zaczyna coś piszczeć (zapewne karta dźwiękowa).


To musi być coś u ciebie na kompie spaprane, bo ja, mimo słuchania kilka godzin tych stacji internetowych nie spotkałem czegoś takiego.

Originally posted by Rouge:

Dokładnie tak.


W sumie wielką trudnością by to nie było. OK, zobaczę w najbliższym czasie, podobnie ze stacjami zetki. wink

Dodam jeszcze, że jak znajdę trochę samozaparcia i obmyślę koncepcję, to może powstanie podobny widżet - PolskaStacja.pl RDS Widget wink Ale to póki co tylko plany i niczego nie obiecuję.

eXtremo napisał(a):

Nie wiem czy wszyscy wiedzą, ale ukazała się nowa wersja RMF RDS Widget - 1.2.
Changelog na stronie widżetu: http://widgets.opera.com/widget/7354/

Rouge napisał(a):

A ja wracam do pomysłu ZET RDS, bo na nowej wersji strony http://www.radiozet.pl/ pojawiła się bardziej rozbudowana funkcja Teraz gramy, która oprócz tytułu zawiera także okładkę płyty. Myślę, że mimo braku innych funkcji dostępych w RMF, warto byłoby jakiś podobny widżecik zrobić.

eXtremo napisał(a):

No fajnie, fajnie, ale wygląda na to, że zrobili zabezpieczenie ograniczające wywoływania wyłącznie do hosta radiozet.pl :\

Ryszard napisał(a):

Originally posted by eXtreme_pl:

No fajnie, fajnie, ale wygląda na to, że zrobili zabezpieczenie ograniczające wywoływania wyłącznie do hosta radiozet.pl :\

Chodzi Ci o to, że jak na http://www.radiozet.pl/Sluchaj/Default.aspx kliknąć w link http://www.radiozet.pl/content/stream/radiozet.pls to wyskakuje
"The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable........"
stronka "HTTP Error 404 - File or directory not found" produkowana przez serwer?

eXtremo napisał(a):

Nie, nie o to mi chodzi wink Chodzi mi o metodę pobierania informacji o utworze na stronie głównej radia zet (po prawej stronie) - serwer mi odmawia, jeżeli używam tej samej metody od siebie, z dysku. wink Nie wnikajmy w szczegóły, chyba że ktos chętny, to wyjasnię.

Zajec napisał(a):

Originally posted by eXtreme_pl:

Nie, nie o to mi chodzi wink Chodzi mi o metodę pobierania informacji o utworze na stronie głównej radia zet (po prawej stronie) - serwer mi odmawia, jeżeli używam tej samej metody od siebie, z dysku. wink

A to nie wynika z tego, że XMLHttpRequest działa tylko w obrębie domeny (kwestia bezpieczeństwa)? Bo widżety mogą dobierać się do dowolnej strony, bez ograniczeń na domenę.

eXtremo napisał(a):

Hmmmm bigsmile Racja Zajec wink Zapomniałem o tym i próbowałem odpalić pobieranie z testowego skryptu na dysku. Przez widżet poszło wink W takim razie się zrobi w najbliższym czasie! cheers

Ryszard napisał(a):

Originally posted by eXtreme_pl:

W takim razie się zrobi w najbliższym czasie!

Bardzo się cieszę, że pomogłem wink