如标题所示,我需要将资源文件夹中的视频(.mp4)加载到 WebView 中。 我尝试了一些方法:
//第一
String webpage = "<!doctype html><head><meta charset='utf-8'></head><body><video id='video' controls='controls' autoplay='autoplay' height=" + m.getHeight() + " width=" + m.getWidth() + "><source src='file:///android_asset/1003/landscape_1003_1_m864.mp4' /></video></body></html>";
wv.loadData(webpage, "text/html", "utf-8");
//第二个
使用 loadUrl() 方法加载相同的网页
wv.loadUrl(webpage);
//第三
使用另一种方法加载完全相同的网页
wv.loadDataWithBaseURL("file:///android_asset/", webpage,"text/html", "utf-8", null);
我尝试将第一个参数更改为 null,还有网页,...
一切都必须动态添加(webview 本身、视频的 url、宽度、高度……),因此不能选择创建 XML 文件。
我在互联网上找到的很多解决方案是将视频移动到 Raw 文件夹或 SD 卡,但这不是一个选项(业务决策)。
如果有人能帮助我,那就太好了。
附注如果您可以帮助我完成完全相同的事情,但在视频 View 中显示视频,并使用 html5 视频元素(播放、暂停、搜索栏、全屏)等所有控件,请随意!
最佳答案
我也遇到了同样的问题。不幸的是我没有找到解决方案。除此之外,我只是做这样的事情:
- 在网页 View 中打开网站
- 当用户打开以 .mp4 结尾的链接时,我会使用视频播放器打开新 Activity 。
- 传递网址
打开视频
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); parent = (TabLayout)this.getParent(); setContentView(R.layout.XXXXXXXXXX); l = (ProgressBar)findViewById(R.id.webL); Resources res = getResources(); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setSupportZoom(true); mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); mWebView.loadUrl(res.getString(R.string.XXXXXX)); mWebView.getSettings().setAllowFileAccess(true); mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); l.setVisibility(View.INVISIBLE); } @Override public void onPageStarted (WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); l.setVisibility(View.VISIBLE); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.endsWith(".mp4") ) { data.url = url; Intent intent = new Intent(getApplicationContext(), VideoPlayer.class); startActivity(intent); return true; } else { return super.shouldOverrideUrlLoading(view, url); } } }); }
..还有我的视频播放器:
public class VideoPlayer extends Activity
{
private VideoView mVideoView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.video);
mVideoView = (VideoView) findViewById(R.id.surface_video);
mVideoView.setVideoURI(Uri.parse(data.url));
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.start();
}
关于android - 将视频从资源加载到 HTML5 webview - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514200/