2016-08-01 12 views
7

Dużo przeszukuję mój problem i nie znalazłem rozwiązania. W mojej aplikacji korzystającej z Cordova odtwarzam dźwięki mp3. Wszystko jest w porządku, z wyjątkiem sytuacji, gdy odtwarzasz muzykę w tle (mp3, muzyka google, ...), dźwięk zatrzymuje odtwarzanie muzyki w tle. Nie chciałbym zatrzymywać muzyki w tle podczas odtwarzania mojego dźwięku.Dźwięki kordowej zatrzymują muzykę w tle

Próbowałem 3 differents metody:

1 - plugin: Cordova-plugin-mediów

Gdy odtwarzanie dźwięku, zatrzymuje się muzyką w tle i nie zostanie ponownie uruchomiony na końcu.

2 - Wtyczka: Cordova-plugin-nativeaudio

Najgorsze, muzyka w tle zatrzymuje się, kiedy rozpocząć mój wniosek

3 - Korzystanie z funkcji javascript

var mySound = new Audio('sounds/entering.mp3'); 
mySound.play(); 

działa prawidłowo na Androidzie dźwięk jest odtwarzany, głośność muzyki w tle spada, a po zakończeniu dźwięku głośność muzyki w tle wraca do normy. W systemie iOS muzyka w tle zatrzymuje się i nie odtwarza się ponownie na końcu.

Czy ktoś już miał ten problem?

Dzięki!

+0

znalazłeś rozwiązanie tego problemu? – m1crdy

+0

Nie używam czystego rozwiązania. Używam cordova-plugin-yanap na urządzeniu z Androidem. To działa dobrze. Na iOS używam okien dialogowych ordova-plugins i zmieniłem dźwięk sygnału dźwiękowego. Możesz znaleźć plik dźwiękowy w CDVNotification.bundle ... Działa dla mnie, ponieważ mam tylko jeden dźwięk ... – PatrickB

+0

'cordova-plugin-nativeaudio' działa dobrze dla mnie, co próbujesz zrobić. – johnborges

Odpowiedz

2

stworzyłem Cordova wtyczki do obsługi tej sytuacji: https://github.com/davidfig/cordova-allow-background-audio

cordova add plugin cordova-allow-background-audio 

Wtyczka została w oparciu o odpowiedzi I znaleźć tutaj: iphone app allow background music to continue to play

+0

Jakie metody, które opisałem, powinny używać w twojej wtyczce? – PatrickB

+0

Jeśli używasz tej wtyczki iOS, muzyka w tle będzie nadal odtwarzana wraz z dźwiękiem aplikacji. Możesz użyć dowolnej biblioteki dźwięków. Używam howler.js w moich aplikacjach. Wtyczka zmienia sposób obsługi dźwięku przez aplikację. Domyślnym ustawieniem Cordova (lub prawdopodobnie web view) jest to, że gdy aplikacja używa dźwięków, ma wyłączną kontrolę nad głośnikiem. Wtyczka zmienia to ustawienie. –

+0

To jest fantastyczne i jest dokładnie tym, czego potrzebowałem. Należy jednak pamiętać, że AVAudioSessionCategoryAmbient jest wyciszany, gdy w iPhonie włączony jest przełącznik ciszy. Wyciągałam włosy, próbując dowiedzieć się, dlaczego dźwięk działa po podłączeniu do Bluetooth, ale nie z natywnym głośnikiem, dopóki nie znalazłem tej notatki w dokumentach Apple Dev. Nie jest to typowa sprawa, ale warto zauważyć. –