1 Ostatnio edytowany przez grzybson (2013-10-10 20:51:51)

Od dawna zastanawiało mnie, czy kontrolkę ASAPa w Silverlight dałoby się przenieść na Windows Phone (obdarzyło mnie trzy lata temu słuchawką z tym OSem). Silverlight jest jedną z głównych technologii w których pisze się tam aplikację, więc ksperymentowałem, pokombinowałem i tak zrodził się 7sap.

W tej chwili program potrafi:
* odtwarzać SAPy, w tym także subsongi - dekoder wzięty z ASAP
* audio gra w tle - można spokojnie wyjść z aplikacji i robić coś innego; jednakże w takim przypadku muzyka potrafi czasem przyciąć
* odtwarzać kawałki w losowej kolejności
* utwory z flagą LOOP mogą grać w nieskończoność albo tyle, ile podano w znaczniku TIME (albo 3 minuty gdy nie podano)
* zarządzanie kolekcją utworów - usuwanie poj. kawałka, wszystkich kawałków, ściągnięcie jednego lub wielu kawałków z internetu (należy wskazać TXT z listą url-i) - w WinPhone nie ma bezpośredniego dostępu do filesystemu, więc trzeba kombinować.

Player jest aktualnie intensywnie testowany na słuchawce LG Optimus 7 (aka e900) z WP 7.8. Powinien także działać na WP8 (zgodnoe API), ale nie mam jak sprawdzić - emulator WP8 do pracy wymaga Hyper-V, a niestety żaden z moich blaszaków tego nie pociągnie.

Jeżeli ktoś chciałby potestować na własnej słuchawce, niech do mnie pisze - warunek: trzeba posiadać przynajmniej odblokowanie developerskie (móc wgrywać własne XAPy na telefon).
Dla całej reszty mam dobrą wiadomość - po zakończeniu testów player postaram się wrzucić do Marketplace (mam konto studenckie). Of coz za friko :)

Przy okazji - czy jest na sali jakiś grafik? Będę potrzebował paru ikonek(kafelków) w różnych rozmiarach i splashscreena.

http://atari.pigwa.net/7sap/scr1.pnghttp://atari.pigwa.net/7sap/scr2.pnghttp://atari.pigwa.net/7sap/scr3.pnghttp://atari.pigwa.net/7sap/scr4.png

grzybson/SSG^NG

2

Wypas! Napracowałeś się.

Fajnie byłoby, gdyby potrafił ściągać ZIPa z całą ASMA, a potem offline odtwarzać.

https://www.youtube.com/watch?v=jofNR_WkoCE

Czekam na wersję na Androida ;)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

4

Przecież jest: http://asap.sourceforge.net/

https://www.youtube.com/watch?v=jofNR_WkoCE

Ale nie od Grzybsona ;) <hint>ja go tu namawiam na porzucenie imperium zła ;)</hint>

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

6 Ostatnio edytowany przez jury (2013-10-11 09:29:52)

Adam Klobukowski napisał/a:

ja go tu namawiam na porzucenie imperium zła

Raczej marne szanse, stamtąd trudniej się wyrwać niż z sekty %-)

7

@Fox:
Dzięki :)
Obsługa ZIPa jest do zrobienia w tej wersji, nie powinna nastręczyć trudności.
Mam jeszcze pomysł na parę feature-ów, część pewnie dodam na dniach (np. integrację z hubem Music+Videos), resztę zostawię sobie na później (np. tworzenie elastycznych playlist; teraz gra wszystko z kolekcji). Chciałbym to w miarę szybko wrzucić do Marketplace-a, bo tak szacując całych dwóch użytkowników już czeka :D

@AdamK
Dlaczego nie Android? Hmmm, bo nie mam telefonu z Androidem? ;) Poza tym tam się w Javie pisze, fuj! A ciemna strona jest taka kusząca, mają darmowe ciasteczka itp.

grzybson/SSG^NG

@grzybson: ale nikt Ci nie każe pisać w Javie :)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

9

w Javie ? :D http://www.youtube.com/watch?v=E3418SeWZfQ

10 Ostatnio edytowany przez grzybson (2013-10-11 13:15:53)

Hehe znam. Niby śmieszne te zapowiedzi ich konferencji, ale z drugiej strony wyczuwam w nich pewną nutę kompleksów twórców ;) Przy okazji przyjrzyj się tam na końcu filmiku liście partnerów - surprise!

Anyway, bo się nam zaraz zrobi taki offtopic, że kiero zacznie wlepiać bany.

grzybson/SSG^NG

11

@Grzybson
Bardzo fajna sprawa :-) Fajnie, że będzie działać na wp7.8. Natomiast jeśli chodzi o user-ów to patrząc po ostatnim Wapniaku myślę, że będziesz miał znacznie więcej niż dwóch :-)
Jak by co to mam odblokowanego 7.8 i mogę robić za beta testera

@swinkamor12: Amiga tak zresztą jak ST jest 32 bitowa bo procesor jest 32 bitowy, int w C jest 32 bitowy, a to po ilu bitach się komunikuje z resztą jest nieistotne.

12

drygol napisał/a:

w Javie ? :D http://www.youtube.com/watch?v=E3418SeWZfQ

Java 4-Ever! http://tiny.pl/qxcgh

Maciek
--------
Atari 65XE + Ultimate 1MB + Stereo + SIO2SD | Atari 520STE + 4MB + UltraSatan | Atari Falcon 030 + CT60e + 14MB ST + 256MB TT + 68882  + CF + Netusbee | Amiga 500 + 1MB + Gotek | Amiga 600 + 2MB Chip + 8MB Fast + CF

13

Ajcek - nie "będzie działać", bo JUŻ działa, własnie słucham sapów z telefonu :) Podaj na PM maila, abym mógł wysłać Ci XAPa do testów. BTW jaka słuchawka?

grzybson/SSG^NG

14

grzybson napisał/a:

Mam jeszcze pomysł na parę feature-ów

Przemyśl tak layout, aby w przyszłości było miejsce na STIL. Ale to dopiero jak przepiszę parser STIL na Ć - pewnie w przyszłym roku.

https://www.youtube.com/watch?v=jofNR_WkoCE

15

Spoko. Właśnie myślałem, czy samemu nie ugryźć tematu STILa w późniejszej wersji, ale najwyżej poczekam :)

grzybson/SSG^NG

16

ZIP z ASMĄ byłby fajny, ale świeży trunk z SVN fajniejszy.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

17

Zip z ASMA++

Moge testowac na WP 7.8 i 8, ale nie mam odblokowanych fonow. Release wskazany!

18 Ostatnio edytowany przez grzybson (2013-10-17 21:01:31)

Status update:
Dodano obsługę archiwów ZIP.

Wypróbowałem na ZIPie z ASMĄ - działać działa, ale trzeba być masochistą. Rozpakowanie trochę trwa (acz testowałem tylko na emulatorze) do tego zarządzanie taką ilością plików to trochę masakra. W tej wersji wszystkie sapy wrzucane są to jednej płaskiej listy, nie ma podkatalogów, nie ma własnych playlist - przy ilości plików z ASMA wrażenia użytkowe są mało przyjemne.

Odnośnie daty release'u:
- chciałbym jeszcze appkę przetestować chociaż na emulatorze WP8 - u mnie nie ruszy, bo musi działać HyperV, a do tego potrzebny SLAT,
- czekam na grafikę - rozmawiałem już w tej sprawie z Kierownikiem, coś wyrysuje.

Jak będą spełnione powyższe dwa punkty, to wypycham projekt na WP Marketplace, certyfikacja potrwa max. 7 dni roboczych i jeśli mnie na niczym nie uwalą, to będzie można oficjalnie słuchać SAPów na WinPhone :)

EDIT: Przed chwilą pomyślnie ukończyłem rejestrację konta w Windows Phone Marketplace :)

grzybson/SSG^NG

19

grzybson napisał/a:

Rozpakowanie trochę trwa

Czy rozpakowujesz i wczytujesz AUTHOR i NAME z wszystkich SAPów? Taka operacja zajmuje kawał czasu nawet na PCcie.

W Androidzie wybieraczka działa bezpośrednio na ZIPie i pokazuje konkretny katalog. Jeśli włączy się pokazywanie tagów, to rozpakowują się do pamięci tylko SAPy z tego katalogu.

grzybson napisał/a:

przy ilości plików z ASMA wrażenia użytkowe są mało przyjemne

Może chociaż jakieś wyszukiwanie? W Androidzie wystarczyło dodać:

getListView().setTextFilterEnabled(true);

i Android sam filtruje listę jak zacznie się pisać.

https://www.youtube.com/watch?v=jofNR_WkoCE

20 Ostatnio edytowany przez grzybson (2013-10-17 23:35:29)

Testowałem tylko na emulatorze - jutro sprawdzę na telefonie (nie chciałem sobie psuć kolekcji SAPów :) ).

ZIPy przy ściąganiu są od razu rozpakowywane do Isolated storage. Przy ściąganiu ładuję każdy plik do AsapInfo, by już na tym etapie sprawdzić jego poprawność i wyeliminować ew. uszkodzone pliki.

Z wyszukiwaniem tak łatwo nie pójdzie, domyślnie lista nie obsługuje filtrowania; można by w sumie łatwym kosztem dopisać. Ew. Zamienić zwykłą listę na LongListSelectora (listę z grupami, z dodatkowym ekranem pozwalającym łatwo skoczyć do danej grupy - przykład na MSDN).

EDIT:
Zrobiłem pomiary dzisiaj :) Wykonano na LG e-900, ostatni ZIP ze strony ASMA - 4664 plików w archiwum.
* Pobranie i rozpakowanie zipa z ASMĄ, podczas którego każdy plik był sprawdzany pod kątem poprawności zajęło 18 minut (trzeba było wyłączyć wygaszanie ekranu aby się udało).
* Uruchomienie playera - frontendu - podczas którego ładowane są metadane wszystkich sapów zajmuje 11 sekund.

Jutro (dzisiaj mi się naprawdę nie chce) zrobię jeszcze test ile zajmuje ściągnięcie i rozpakowanie, bez sprawdzania poprawności SAPa.

Dla porównania ja na co dzień mam 133 pliki w kolekcji, nie ma żadnych problemów z obsługą.

grzybson/SSG^NG

21

grzybson napisał/a:

podczas którego ładowane są metadane wszystkich sapów

Ładowane z SAPów, czy trzymasz gdzieś na boku?

https://www.youtube.com/watch?v=jofNR_WkoCE

22

Rozważałem, czy aby nie cache'ować gdzieś odczytanych tagów, ale klasa AsapInfo nie bardzo chce się serializować .netowskimi serializerami. Musiał bym:
- albo ją poprzerabiać, udekorować gdzieniegdzie atrybutami, ale byłoby to kłopotliwe przy aktualizacjach asap-a
- albo napisać własny serializer/deserializer do AsapInfo - bardziej sensowne rozwiązanie.

Swoją drogą fajnie by było, gdyby cito obsługiwało get-settery na styl C#. Niby tylko lukier składowy, ale cieszy.

Muszę porobić jakieś dokładniejsze testy czasowe, a nie takie ze stoperem w ręku ;)

Za to dzisiaj dodałem filtrowanie listy plików (niech żyje LINQ!).

grzybson/SSG^NG

23

grzybson napisał/a:

Swoją drogą fajnie by było, gdyby cito obsługiwało get-settery na styl C#.

Rozważałem to, jednak póki co C# jest w mniejszości jeśli chodzi o ten ficzer.

https://www.youtube.com/watch?v=jofNR_WkoCE
Fox napisał/a:
grzybson napisał/a:

Swoją drogą fajnie by było, gdyby cito obsługiwało get-settery na styl C#.

Rozważałem to, jednak póki co C# jest w mniejszości jeśli chodzi o ten ficzer.

Siszarpowe gettery i settery są evil.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

25

Heja,

Ostatnio sprawa playera trochę przymarła. Wielogodzinne testy odłsuchowe potwierdzają poprawne działanie. Natomiast znalazłem pewną ciekawostkę - zacząłem grzebać pod MSDN jak można odblokować telefon do zabawy i wydaje mi się, że może to zrobić każdy, nie tylko posiadacz konta developerskiego :D Są małe ograniczenia - 1 telefon na 1 LiveID, max dwie niezależne aplikacje, ale to chyba niektórym do testów wystarczy :)

Więcej info: http://msdn.microsoft.com/en-us/library … 05%29.aspx

Więc jak ktoś chętny do zabawy? Mogę pomóc na GG/Skype

(of coz appka będzie też w swoim czasie na Marketplace)

grzybson/SSG^NG