2013-04-21 3 views
1

Я загружаю страницу в UIWebView. На странице представлены миниатюры для воспроизведения. Когда я нажимаю любой из миниатюр, он запускается в любом проигрывателе по умолчанию. Я хочу, чтобы он не играл в проигрыватель по умолчанию, я хочу воспроизвести видео в MPMovieController С помощью пользовательских элементов управления, когда я нажимаю на миниатюру в UIWebview. Могу ли я остановить воспроизведение видео в проигрывателе по умолчанию?Остановка видео для воспроизведения в UIWebView

ответ

0

Для этого потребуется получить URL-адрес фильма и воспроизвести его в MPMoviePlayer и остановить перенаправление webview.

LOGIC:

в делегатом WebView в:

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

получить URL из NSURL NSURLRequest, а затем получить Перенаправление URL с NSURL absoluteString

сравнить расширение файла в URL.
, если это видео, например. .mov/.mp4, загрузите ваш MPMoviePlayer с URL-адресом, чтобы воспроизвести его в приложении, и return NO; для этого метода делегата.

+2

Этот метод не вызывается при нажатии на миниатюру видео. –

+0

У вас установлен делегат webview для просмотра контроллера? – samfisher

+0

Да, он вызывает время загрузки –

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 
    } 
} 

, записанный в память

Смежные вопросы