Configurar la categoría AVAudioSession no tiene ningún efecto sobre el sonido de WKWebView

No puedo replace la categoría o el puerto de AVAudioSession cuando se reproduce el audio desde una WKWebView. El mismo código funciona perfectamente cuando se usa un UIWebView normal.

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

También intenté activar la shanetworkingInstance así, pero no ayudó:

 [session setActive: YES error: nil]; 

El código anterior no tiene ningún efecto sobre el audio que proviene de una WKWebView. Encontré algunos informes en Twitter que iOS 8.1 mezcla el audio WKWebView con el audio de la aplicación de background, pero no pude encontrar la fuente para eso. Vea este hilo de Twitter para reference: https://twitter.com/marcoarment/status/530881842900373504

Entonces, aparentemente, WKWebView se ejecuta en un process separado de su aplicación. Lo que probablemente signifique que también tiene su propia AudioSession separada de la AudioSession de su aplicación. Es por eso que los cambios en la AudioSession de su aplicación no afectarán a la webView. Y también por qué funciona con UIWebView (sin process por separado). Al less eso es lo que reuní hasta ahora …

La solución para mí fue permitir que la AudioSession de mi aplicación se mezcle con otras personas:

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

Por supuesto, esto tiene otras implicaciones también. El audio de su aplicación se mezclará con el audio de todas las demás aplicaciones, no solo de su webview.