Существует Hacky способ найти URL путем прослушивания уведомления AVPlayerItemBecameCurrentNotification
. Это уведомление вызывается, когда UIWebView показывает медиаплеер, и он отправляет AVPlayerItem
в качестве объекта уведомления.
Например:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemBecameCurrent:)
name:@"AVPlayerItemBecameCurrentNotification"
object:nil];
-(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];
}
Это работает для любого видео (и аудио). Однако ничего не стоит того, что он запускается после загрузки медиаплеера, поэтому вы не можете остановить запуск проигрывателя на этом этапе (если это было вашим намерением).
У кого-нибудь есть обновленное решение для этого с помощью WKWebView? –
Когда WKWebView воспроизводит видео, уведомление не будет отправлено. Вы можете прослушать все уведомления и журнал печати, чтобы доказать это. @CharltonProvatas –
Мне удалось получить его с помощью уведомлений UIWindow. Я не думаю, что это будет работать, однако, для видео, играющих inline: https://developer.apple.com/reference/uikit/uiwindow –