Ich benutze Vimeo mit Webview in einer meiner Apps, aber in einigen Geräten funktioniert es nicht sehr gut. Auf meinem Xaiomi (API-19) zeigt es nicht die Video-Fortschrittsleiste und auf meinem S4 (API-21) das erste Mal, wenn ich das Video richtig angezeigt, aber beim zweiten Mal zeigt es einen weißen Bildschirm, nicht nur auf das video schau ich mir aber nur in allen anderen vimeos videos an, die ich versuche zu spielen. Jemand weiß, was ich falsch mache? oder ein anderer Weg, der funktioniert ?. Hier ist meine VimeoPlayer Aktivität.Vimeo Embed zeigt weißen Bildschirm/fehlende Fortschrittsbalken
public class VimeoPlayer extends Activity {
private HTML5WebView mWebView;
private ModelVideo video;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new HTML5WebView(this);
video = getIntent().getParcelableExtra("video");
//Auto playing vimeo videos in Android webview
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setPluginState(PluginState.OFF);
mWebView.getSettings().setAllowFileAccess(true);
String html = "<iframe src=\"https://player.vimeo.com/video/" + video.getVideoUrl() +
"?title=0&byline=0&portrait=0&color=000000\" width=\"" + mWebView.getWidth() + "\" height=\"" +
mWebView.getHeight() + "\" frameborder=\"0\" webkitallowfullscreen=\"\" mozallowfullscreen=\"\" allowfullscreen=\"\"" +
"style=\"margin-top:-8px;margin-bottom:-8px;margin-left:-8px;margin-right:-8px;padding:0;width:105%;height:100%;background-color:#000000;\"></iframe>";
String mime = "text/html";
String encoding = "utf-8";
mWebView.loadDataWithBaseURL(null, html, mime, encoding, null);
setContentView(mWebView.getLayout());
//Esconder a Status Bar
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
if(actionBar!=null) {
actionBar.hide();
}
}
@Override
public void onPause() {
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mWebView.destroy();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
super.onBackPressed();
mWebView.destroy();
finish();
}
}
Hallo @Kevin Z, danke für Ihre Antwort. Ich habe zu der von Ihnen vorgeschlagenen Bibliothek gewechselt, und das Problem mit dem weißen Bildschirm ist behoben, aber auf einigen Geräten wird der Fortschrittsbalken immer noch nicht angezeigt. Wie meine Xiaomi (API-19). Weißt du, was passieren könnte? –
Leider bin ich mir nicht sicher, warum der Fortschrittsbalken auf diesem Gerät nicht angezeigt wird. Wenn es in anderen angezeigt wird, ist möglicherweise eine WebView-Konfiguration nicht ordnungsgemäß festgelegt worden. –