gpt4 book ai didi

android - Vimeo 嵌入显示白屏/缺少进度条

转载 作者:行者123 更新时间:2023-11-30 01:12:16 25 4
gpt4 key购买 nike

我在我的一个应用程序中使用带有 webview 的 Vimeo,但在某些设备上它运行得不是很好。在我的 xaiomi(API-19) 上,它不显示视频进度条,在我的 S4(API-21) 上,我第一次观看视频时它显示正确,但第二次它显示白屏,不仅在我刚刚观看的视频,但在我尝试播放的所有其他 Vimeos 视频中。有人知道我做错了什么吗?或另一种有效的方式?这是我的 VimeoPlayer Activity 。

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();
}

}

最佳答案

我想为您提供一个轻微的替代方法。您在上面的代码中有一个硬编码的 html iframe,带有动态 fragment 。 Vimeo 通过他们的网络为您提供此 html iframe API , 它包含在每个 Video 对象中。一个example包含在关于如何请求视频,然后在 WebView 中播放的自述文件中。完全公开,我是这个图书馆的作者之一。

关于android - Vimeo 嵌入显示白屏/缺少进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38308295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com