Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: dźwięk ....

Ha
Myślałem że odtworzenie małego mp3 lub wafla będzie proste a okazuje się że nie jest ;-(

Potrzebuje dla strony wyświetlanej na ekranie dotykowym zrobić potwierdzenie dźwiękiem
zdarzeń onclick i okazuje się że to nie takie proste.
Macie koledzy jakieś patenty jak to zrobić bez angażowania jakiś jquerowskich kobył ?

I drugie pytanie - czy używając jquery da się jakoś globalnie dowiązać DODATKOWO funkcję obsługi zdarzeń do wszystkich wskazanych elementów - tak aby np wszystkie przyciski poza swoimi funkcjami wołały funkcję SoundKlick ale tylko wtedy gdy ustawiona jest globalna zmienna
use_sound_click

konto usunięte

Temat: dźwięk ....

Co do drugiego pytania to wystarczy odpowiedni warunek dla $() i masz tablicę wszystkich elementów którą możesz za pomocą "for" obrobić dodając do kolejki onClick dodatkową funkcję.

Temat: dźwięk ....

Jeżeli można skorzystać z HTML5 to:
http://www.w3schools.com/html5/tag_audio.asp

JS:
document.getElementById(s).load();
document.getElementById(s).play();

konto usunięte

Temat: dźwięk ....

A jeśli nie można?
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: dźwięk ....

Przemysław W.:
Jeżeli można skorzystać z HTML5 to:
http://www.w3schools.com/html5/tag_audio.asp

Dzięki za zainteresowanie ale gdyby to było tka proste to nie zaśmiecałbym tej szanownej grupy.
Robiłem w ubiegłym tygodniu tyle eksperymentów że już mi się wszystko poplątało ale jak dobrze pamiętam to document.getElementById(s).play(); otwiera mi mediaplajera ;)

Znalazłem coś takiego
http://www.schillmania.com/projects/soundmanager2/
i wygląda obiecująco - ale duże toto

konto usunięte

Temat: dźwięk ....

Jeżeli dobrze rozumiem, co próbujesz zrobić, to jest to stosunkowo łatwe.

Zerknij tutaj, przygotowałem małe demo: http://jsfiddle.net/pczeglik/fbtaF/1/

Polecam przeczytać o tagu HTML5 audio: http://www.w3.org/wiki/HTML/Elements/audio

I dodatkowo musisz wiedzieć, że sampel dźwiękowy musisz przygotować w co najmniej dwóch formatach, przykładowo mp3 i ogg, ponieważ nie każda przeglądarka wspiera mp3. Odnośnie formatów zobacz tutaj jest tabelka: http://html5doctor.com/native-audio-in-the-browser/

Natomiast jeżeli to ma być zrobione bez HTML5 lub jeżeli ma to wspierać przeglądarki nie wspierające tagu audio to trzeba zrobić fallback do flasza.

konto usunięte

Temat: dźwięk ....

Jeszcze w odpowiedzi na drugie pytanie. Można zrobić to równie łatwo.

Bez jQuery, zerknij tutaj: http://jsfiddle.net/pczeglik/fbtaF/3/

Z jQuery, zerknij tutaj: http://jsfiddle.net/pczeglik/ZFcKX/
Wojciech S.

Wojciech S. BushidoIT.com

Temat: dźwięk ....

Mówisz o ekranach dotykowych, więc zakłądam że chodzi o smartphony i tablety działające w oparciu o system Android lub iOS (oraz inne jak WP7, Blackberry - z nimi jednak nie mam doświadczenia). Są to jednak moje domysły - jeżeli sie mylę, to dalsza część postu raczej Cie nie zainteresuje :)

Jeżeli się nie mylę, to problem z którym się spotkałeś nie jest trywialny. Obsługa dźwieku w desktopowych przegladarkach, mówiąc ogólnie nie jest najlepsza. Na mobile jest dużo gorzej. Występują liczne ograniczenia i problemy jak:

- odtwarzanie tylko jednego dźwięku jednocześnie,
- możliwość inicjalizacji "grania" dopiero po wykonaniu akcji przez użytkownika,
- różne formaty plików dźwieków dla różnych urządzeń.

W sieci znajdziesz masę artykułów na ten temat. Jak na przykład:

http://blog.logicking.com/2012/03/cross-platform-sound...
http://www.scirra.com/blog/46/more-on-html5-audio-code...
http://www.scirra.com/blog/64/why-you-shouldnt-use-mp3...

jeżeli chcesz odtwarzać tylko kliknięcie (jako feedback dla użytkownika, że kliknął), to z tak prostym zadaniem spora część urządzeń powinna sobie poradzić (Android >= 2.3, iOS >= 4.2). Ostatnio zmagałem się z tym samym problemem i wykorzystałem bibliotekę Jukebox udostępnioną przez Zyngę (http://zynga.github.com/jukebox/). Jest mała (w przeciwieństwie do jPlaera czy SoundManagera) i robi to co powinna.

Następna dyskusja:

Konie + dźwięk




Wyślij zaproszenie do