Переопределение MPNowPlayingInfoCenter при использовании WKWebView

Я пытаюсь создать музыкальный проигрыватель с несколькими источниками с треками, поступающими с YouTube и Soundcloud, и я хотел бы переопределить содержимое MPNowPlayingInfoCenter, чтобы предоставить информацию об исполнителях/релизах вместо названия видео на YouTube.

Все работало хорошо, когда я использовал UIWebview, но по соображениям производительности мне пришлось переключиться на новый WKWebview, и теперь метод, который я использовал раньше для установки nowPlayingInfos, не действует.

Есть ли способ отключить автоматическое сопоставление тегов <audio> и <video> внутри HTML и/или переопределить информацию, которую он предоставляет, с моей информацией?

Вот код, который я использую, который работает на iOS 7 и работал на iOS 8, когда я использовал 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

Я проверил, что ни одна из переменных, которые я использую, не равна нулю, и я активировал свою AudioSession в AppDelegate.

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

Любые идеи?


person Marc Peysale    schedule 04.05.2015    source источник
comment
Удалось ли вам найти решение для этого? Просто потратьте день, пытаясь найти способ переопределить WKWebView и UIWebView, предоставляя информацию на экране блокировки (я хочу предоставить UIImage и текст самостоятельно..) Безуспешно.. Кстати: с IOS 8.4 и UIWebView я также не могу установить изображение экрана блокировки больше   -  person cujo30227    schedule 12.08.2015
comment
Нет, в конце концов я сдался и отправил приложение без NowPlayingInfos для iOS 8 и WKWebview. Я создал вопрос на Apple Radar, но до сих пор у меня не было ответов, прошло более 3 месяцев, и ситуация все еще то же самое и в iOS 9, так что не думаю, что они что-то сделают   -  person Marc Peysale    schedule 13.08.2015
comment
Привет, ребята! @ cujo30227 Ты решил это? У меня такая же проблема. Но прошло 3,5 года! Любое решение для этого?   -  person Kesha Antonov    schedule 02.01.2019
comment
Нет, к сожалению, нет.. все та же проблема..   -  person cujo30227    schedule 03.01.2019


Ответы (1)


Хотя в iOS невозможно переопределить само свойство, следует отметить, что изменение свойства title элемента <video> в JavaScript

Я добился такого поведения с помощью

var control = ...; //Create video DOM control
control.title = "Desired title";
person Mislav Javor    schedule 24.05.2016
comment
как насчет установки изображения? - person quemeful; 03.04.2019