使用WKWebView时覆盖MPNowPlayingInfoCenter

Mar*_*ale 9 media-player ios swift wkwebview

我正在尝试使用来自YouTube和Soundcloud的曲目创建一个多源音乐播放器,我想覆盖MPNowPlayingInfoCenter的内容,以提供有关艺术家/发行版的信息,而不是YouTube视频的名称.

当我使用UIWebview时,一切都运行良好,但出于性能原因,我不得不切换到新的WKWebview,现在我用来设置nowPlayingInfos的方法没有效果

有没有办法禁用HTML 中的<audio><video>标签的自动映射和/或覆盖它为我的信息提供的信息?

这是我在iOS 7上使用的代码,当我使用UIWebview时在iOS 8上工作:

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
Run Code Online (Sandbox Code Playgroud)

我检查过我使用的变量都没有,我在AppDelegate中激活了我的AudioSession

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

有任何想法吗?

Mis*_*vor 4

虽然在 iOS 上不可能覆盖属性本身,但应该注意的是,<video>在 JavaScript 中更改元素的“title”属性

我已经实现了这种行为

var control = ...; //Create video DOM control
control.title = "Desired title";
Run Code Online (Sandbox Code Playgroud)

  • 设置图像怎么样? (2认同)