如何从WKWebView获取我的应用程序内的当前音频URL?

时间:2017-02-24 18:35:05

标签: ios audio wkwebview mpmusicplayercontroller mpnowplayinginfocenter

我有一个 WKWebView ,我正在检查音频是否正在播放

[[AVAudioSession sharedInstance] isOtherAudioPlaying] 

我尝试使用以下方式获取有关它的信息:

  [MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo]

但它没有。

然后我尝试了:

 [[MPMusicPlayerController systemMusicPlayer] nowPlayingItem]

并且它也是零。

如何获取当前播放音频的网址?

2 个答案:

答案 0 :(得分:1)

您需要订阅通知:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemBecameCurrent:)
                                             name:@"AVPlayerItemBecameCurrentNotification"
                                           object:nil];

然后在方法playerItemBecameCurrent

中执行此操作
-(void)playerItemBecameCurrent:(NSNotification*)notification {
AVPlayerItem *playerItem = [notification object];
if(playerItem == nil) return;
// Break down the AVPlayerItem to get to the path
AVURLAsset *asset = (AVURLAsset*)[playerItem asset];
NSURL *url = [asset URL];
NSString *path = [url absoluteString];}

答案 1 :(得分:0)

由于您已经可以检测到播放音频的时间,我认为您的解决方案是从 WKNavigationDelegate 实施 decisionPolicyForNavigationAction 方法。

您可以组合此委托方法提供的信息,只要点击与您已经完成的音频检测相关联的链接,就会调用该信息。