我正在开发一个 html5 webview 应用程序来播放播放列表中的 youtube 视频(使用 JavaScript 控制)。
现在我想使用以下代码更改 iOS InfoCenter 中显示的标题、艺术家和其他信息:
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
[songInfo setObject"Audio Title" forKey:MPMediaItemPropertyTitle];
[songInfo setObject"Audio Author" forKey:MPMediaItemPropertyArtist];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
}
它工作了一秒钟,但 iOS 再次用原始的 youtube 标题和视频 url 替换了我的设置信息(标题和艺术家)。有没有办法用我自己的信息永久覆盖这些信息?
谢谢!
Best Answer-推荐答案 strong>
有点黑,但你需要为 AVPlayerItemNewAccessLogEntry 设置一个通知监听器
像这样:
-(void)viewWillAppearBOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selectorselector(playerItemWasSet
name"AVPlayerItemNewAccessLogEntry"
object:nil];
}
然后
-(void)playerItemWasSetNSNotification *)note {
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init];
[songInfo setObject"Audio Title" forKey:MPMediaItemPropertyTitle];
[songInfo setObject"Audio Author" forKey:MPMediaItemPropertyArtist];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];
}
}
我不知道苹果会不会有问题,我没有提交过包含这个的应用程序。只是尝试一下。
关于ios - 如何更改 MPNowPlayingInfoCenter 信息以用于 youtube 播放?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28659682/
|