2015-04-08 3 views
1

Я разрабатываю приложение для Android, которое воспроизводит видео html5 на веб-просмотре, я тестировал видео на firefox, chrome, opera и IE, а элементы управления видео показывали полноэкранную кнопку, но на веб-обозревателе Android lollipop нет полноэкранной кнопки и, следовательно, нет возможности воспроизвести полноэкранный режим видео.Html5 video on webview отсутствует полноэкранная кнопка на lollipop

Я пробовал несколько подходов к javascript, чтобы увеличить видео, но никто не работал. Это ошибка на хроме или есть способ активировать кнопку?

PS: мне кажется, что я не одинок в этом https://code.google.com/p/chromium/issues/detail?id=470666

ответ

1

мне удалось решить мою проблему, создав link на html странице ниже видео, содержащего слово fullscreen,

Ссылка пример:

<a href="http://example.com/video.mp4?fullscreen">fullscreen</a> 

Затем использовали метод webviewshouldOverrideUrlLoading Переопределение любой URL, содержащий слово fullscreen, перенаправляя его на Android-плеер.

mWebView.setWebViewClient(new WebViewClient(){ 
    public boolean shouldOverrideUrlLoading(WebView wView, String url) 
     { 

       if (url.contains("fullscreen")) { 
        Log.i("LOB", "FULLSCREEN " + url); 

       try { 
        url = url.replaceAll("(?im)fullscreen", ""); 
        } catch (PatternSyntaxException ex) { 
        } catch (IllegalArgumentException ex) { 
        } catch (IndexOutOfBoundsException ex) { 
        } 


        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
        intent.setDataAndType(Uri.parse(url), "video/mp4"); 
        startActivity(intent); 

         return true; 
        } 

} 
} 

Это далеко не элегантное решение, но в то время как Google не исправить на леденец, это временное решение, которое работает

6

Android Docs говорит

вам необходимо установить WebChromeClient и реализовать как onShowCustomView (View, WebChromeClient.CustomViewCallback), так и onHideCustomView(). Если реализация любого из этих двух методов отсутствует, веб-содержимое не будет разрешено вводить полный экран.

Если вы просто бросаете код в том месте, где вы настраиваете свой веб-просмотр, появится кнопка. Вам не нужно ничего делать с кодом, вам просто нужно его реализовать, иначе Android-андроид скроет кнопку.

webView.setWebChromeClient(new WebChromeClient() { 

     public void onShowCustomView (View view, WebChromeClient.CustomViewCallback callback) { 
      //do stuff 
     } 

     public void onHideCustomView() { 
      //do stuff 
     } 

    }); 
+0

Для совместимости между устройствами onShowCustomView и onHideCustomView должны быть реализованы в верхнем WebChromeClient подкласса, потому что некоторые производители не пересекают его sublcasses. (вот правильный исходный код разрешения полноэкранной поддержки http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/com/android/webview/chromium /WebViewChromium.java#1347) – yarr

0

При совместном использовании видео в формате HTML5 пользователь должен использовать iframe. По соображениям безопасности веб-сайт, на котором размещается видео, должен включать параметр, позволяющий просматривать полноэкранные видео. Отсутствует параметр allowfullscreen. Это должно быть так:

<iframe width="560" height="315" src="https://www.youtube.com/embed/kVFBmPsugus" frameborder="0" allowfullscreen></iframe> 
0

попробовать это:

WebSettings settings = mWebView.getSettings(); 
settings.setUseWideViewPort(true); 
Смежные вопросы