Pregunta Anulando MPNowPlayingInfoCenter mientras usas WKWebView


Intento crear un reproductor de música de fuentes múltiples con pistas provenientes de YouTube y Soundcloud, y me gustaría sobrescribir el contenido de MPNowPlayingInfoCenter para proporcionar información sobre los artistas / lanzamientos en lugar del nombre del video de YouTube.

Todo funcionó bien cuando usé UIWebview, pero por motivos de rendimiento, tuve que cambiar a la nueva WKWebview y ahora el método que utilicé antes para configurar nowPlayingInfos no tiene ningún efecto

¿Hay alguna manera de desactivar el mapeo automático de <audio> y <video> etiquetas dentro del HTML y / o para anular las informaciones que proporciona con mis informaciones?

Aquí está el código que uso que funciona en iOS 7 y funcionaba en iOS 8 cuando usaba UIWebview:

let newInfos = [
            MPMediaItemPropertyTitle: (currentPlaylist[currentPlaylistIndex] as! Track).trackName,
            MPMediaItemPropertyArtist: (currentPlaylist[currentPlaylistIndex] as! Track).trackArtist,
            MPMediaItemPropertyPlaybackDuration: NSNumber(integer: self.getDuration()),
            MPNowPlayingInfoPropertyElapsedPlaybackTime: NSNumber(integer: self.getCurrentTime()),
            MPNowPlayingInfoPropertyPlaybackRate: NSNumber(double: self.playing ? 1.0 : 0.0),
            MPMediaItemPropertyArtwork: MPMediaItemArtwork(image: image)
        ]

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = newInfos

Comprobé que ninguna de las variables que uso son nulas, y activé mi AudioSession en el AppDelegate

var audioSession = AVAudioSession.sharedInstance()
var error : NSError?
audioSession.setCategory(AVAudioSessionCategoryPlayback, error: &error)
audioSession.setActive(true, error: &error)
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()

¿Algunas ideas?


7
2018-05-04 11:45


origen


Respuestas:


Aunque es imposible anular la propiedad en iOS, se debe tener en cuenta que al cambiar la propiedad "título" del <video> elemento en JavaScript

He logrado este comportamiento con

var control = ...; //Create video DOM control
control.title = "Desired title";

2
2018-05-24 12:44