2014-11-26 18 views
7

Nie mogę przesłonić kategorii lub portu AVAudioSession podczas odtwarzania dźwięku z WKWebView. Ten sam kod działa doskonale podczas korzystania z normalnego interfejsu UIWebView.Ustawienie kategorii AVAudioSession nie ma wpływu na dźwięk z WKWebView

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err]; 

Próbowałem zostały również aktywację sharedInstance takiego, ale to nie pomogło:

[session setActive: YES error: nil]; 

Powyższy kod nie ma wpływu na dźwięk płynący z WKWebView. Znalazłem kilka raportów na Twitterze, że iOS 8.1 miesza dźwięk WKWebView z dźwiękiem aplikacji w tle, ale nie mogłem znaleźć źródła tego. Zobacz ten wątek twitter dla odniesienia: https://twitter.com/marcoarment/status/530881842900373504

+0

Czy chcesz, aby aplikacja nadal odtwarzała dźwięk w Internecie w tle? – dcorbatta

+0

Nie, chcę przełączyć dźwięk do odtwarzania z głośnika na słuchawkę iz powrotem. –

+0

Hi @LylePratt, spróbuj sprawdzić ewentualny błąd w '-setActive: error:' jeśli wystąpi błąd, wskaźnik jest ustawiony na obiekt NSError, który opisuje błąd. Czy jest możliwe, że inne obiekty audio (takie jak kolejki, konwertery, odtwarzacze lub nagrywarki) są obecnie uruchomione? – bl4stwave

Odpowiedz

0

Najwyraźniej WKWebView działa w oddzielnym procesie od Twojej aplikacji. Co prawdopodobnie oznacza, że ​​ma własną AudioSession oddzieloną od AudioSession twojej aplikacji. Dlatego zmiany w AudioSession Twojej aplikacji nie wpłyną na webView. A także dlaczego działa z UIWebView (bez oddzielnego procesu). Przynajmniej to, co do tej pory zebrałem ...

Rozwiązanie dla mnie było, aby umożliwić mojej aplikacji AudioSession mieszać z innymi:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:&error]; 

Oczywiście ten ma także inne konsekwencje, jak również. Dźwięk Twojej aplikacji zostanie zmiksowany z dźwiękiem wszystkich innych aplikacji, a nie tylko z jego podglądem.

+1

Witam, próbuję odtwarzać dźwięk js z wkwebview i NIE powinien przestać odtwarzać muzyki w tle. Ale nie mogę go uruchomić, żadnego pomysłu? – user2673664