在 mediaplayer 中播放的 Android webview 视频
Posted
技术标签:
【中文标题】在 mediaplayer 中播放的 Android webview 视频【英文标题】:Android webview video to play in mediaplayer 【发布时间】:2014-03-19 08:43:20 【问题描述】:我目前正在构建一个显示带有 html 标签的内容的应用程序。内容有一个 HTML5 视频标签,显示来自外部来源的视频。
通过使用 webview.loadDataWithBaseURL(),我加载了 html 页面。 webview 显示视频以及控件(播放、停止等)。我想要做的是当我点击视频时,它会触发 android 默认媒体播放器意图下载和播放视频源,而不是播放与 webview 内联的视频
通过什么方式来完成这个任务?
【问题讨论】:
您必须在线播放视频?还是下载到设备上? 流。我只需要覆盖视频标签中的播放按钮并将网址发布到android的默认媒体播放器。我该怎么做? 只需对 tat 视频标签的点击事件做一个意图到 android 媒体播放器 【参考方案1】:这样做
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("http://your_video_link), "video/mp4");
添加权限 android.permission.WRITE_EXTERNAL_STORAGE
【讨论】:
我知道如何打开媒体播放器,但我不能做的是如何检测视频标签上的点击事件然后打开意图。我使用 WebView.HitTestResult 来获取标签和 url,但是当我单击 【参考方案2】:使用WebViewClient shouldOverrideUrlLoading
检测点击
webView.setWebViewClient(new MyWebClient());
private class MyWebClient extends WebViewClient
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
【讨论】:
这个问题是媒体播放器会在页面加载后开始查看 url,所以我猜 shouldOverrideUrlLoading() 会立即被调用。以上是关于在 mediaplayer 中播放的 Android webview 视频的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Nexus 5 中同时播放两个 MediaPlayer
在 Android 中是不是可以录制 MediaPlayer 播放的内容?
在 Android 中使用 MediaPlayer 播放音频文件