2013-04-21 190 views
1

我正在加载页面UIWebView。该页面包含缩略图。当我点击任何缩略图时,它会在任何默认播放器中启动。我希望它不应该在默认播放器中播放,我想播放MPMovieController中的视频随着自定义控件每当我点击UIWebview中的缩略图。我可以阻止视频在默认播放器中播放吗?停止视频在UIWebView中播放

回答

0

这将需要获取电影网址并在MPMoviePlayer中播放并停止webview的重定向。

LOGIC:

中的WebView委托:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

得到的NSURLRequest的NSURL的URL,然后用NSURL absoluteString

比较URL的文件扩展名获得重定向URL。如果它是视频例如
.mov/.mp4, 加载您的MPMoviePlayer与URL在您的应用程序中播放,return NO;用于此代理方法。

+2

此方法在点击视频缩略图时未调用。 – 2013-04-21 16:41:17

+0

有没有设置webview的委托给viewcontroller? – samfisher 2013-04-21 16:45:13

+0

是的,它正在调用加载时间 – 2013-04-21 16:46:47

0

如果你有机会到缩略图代码,你可以把javascript方法,会做简单的重定向:

<a href="#" onClick="javascript:play_native_video_url(url); >thumbnail here</a> 

play_native_video_url(url) { 
    window.location = "play://"+url; 
} 

UIWebView代表将抓住这一定制方案重定向(而不是http :):

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 

// Define if it is your custom scheme: 
    if ([request.URL.host isEqualToString:@"play"]) { 
     // get url and play it with native MPMoviePlayer... 
     return NO; // do not let WebView process it 
    } 
} 

从内存中写入