Détection et interception de la lecture video dans UIWebView

Je souhaite intercepter un clic dans un UIWebView puis utiliser l'URL de la video. Comment est-ce possible? J'ai trouvé un post quelque peu similaire qui pointait rencontré à la

webView:shouldStartLoadWithRequest:navigationType: 

déléguer. Je ne peux pas sembler get l'URL chargée de la video avec ce délégué.

J'essaie de faire fonctionner le code dans iOS8

Il y a une manière hacky de find l'URL en écoutant la notification AVPlayerItemBecameCurrentNotification . Cette notification est déclenchée lorsqu'un UIWebView affiche le lecteur multimédia et envoie un AVPlayerItem tant AVPlayerItem de notification.

Par exemple:

 [[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]; NSSsortingng *path = [url absoluteSsortingng]; } 

Cela fonctionne pour n'importe quelle video (et audio). Cependant, cela ne sert à rien de lancer le lecteur une fois le lecteur multimédia chargé, donc vous ne pouvez pas arrêter le lancement du lecteur à ce stade (si c'était votre intention).

Si la solution ci-dessus ne fonctionne pour personne, essayez d'écouter AVPlayerItemNewAccessLogEntry plutôt que AVPlayerItemBecameCurrentNotification. AVPlayerItemNewAccessLogEntry semble être appelé après et est où j'ai pu définir l'information.