【问题标题】:How can I get current audio URL playing inside my app from WKWebView?如何从 WKWebView 获取在我的应用程序中播放的当前音频 URL?
【发布时间】:2017-02-24 18:35:04
【问题描述】:

我有一个 WKWebView,我正在使用

检查音频是否正在播放
[[AVAudioSession sharedInstance] isOtherAudioPlaying] 

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

  [MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo]

但它是零。

然后我尝试了:

 [[MPMusicPlayerController systemMusicPlayer] nowPlayingItem]

它也是 nil。

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

【问题讨论】:

标签: ios audio wkwebview mpmusicplayercontroller mpnowplayinginfocenter


【解决方案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];}

【讨论】:

  • 这个解决方案对我不起作用你能指导我怎么做吗?
【解决方案2】:

您已经可以检测到何时播放音频,我认为您的解决方案是从 WKNavigationDelegate 实现 decidePolicyForNavigationAction 方法。

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

【讨论】:

  • 不,这不适用于音频按钮。当您点击它们时,此方法不会调用。
  • 请分享更多关于你想要做什么的信息,因为我认为我误解了你想要做什么。
  • 嗯。我正在尝试使用内置的 WKWebView 制作一种文件下载器。用户单击按钮播放歌曲或视频,我向他显示警报,询问他是否要下载这个音频或视频。我在这个问题stackoverflow.com/questions/42459538/… 中提供了更多信息,并提供了执行此功能的应用程序的链接
  • 抱歉,我不知道如何在所描述的场景中为您提供帮助。
  • 我会在几个小时内完成
猜你喜欢
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 2019-08-18
  • 2016-09-14
相关资源
最近更新 更多