android webview 本地视频播放,javascript – Android WebView不允许加载本地视频文件
我有一个带有WebView的应用程序,显示一个HTML文件.在HTML文件中,有一个按钮,用于请求用户录制视频,或从文档文件夹中选择视频.
在选择(或录制)视频时,它会将带有链接(由Uri编码)的javascript函数调用到视频文件,然后将其设置为元素,方法是将其设置为源:
function showPreview(previewFile){
console.log(previewFile);
document.getElementById('previewVideo').src = previewFile;
}
我遇到了这个错误,我一直在寻找,但似乎无法找到解决方案:
I/chromium﹕ [INFO:CONSOLE(94)] "content://com.android.providers.media.documents/document/video%3A19961",source: file:///android_asset/index.html (94)
W/MediaResourceGetter﹕ permission denied to access network state
W/MediaResourceGetter﹕ non-file URI can't be read due to unsuitable network conditions
E/MediaResourceGetter﹕ Unable to configure Metadata extractor
如您所见,我正在我的javascript函数中记录视频文件的链接,您可以告诉内容链接://com.android.providers.media.documents/document/video:19961.
这就是我在我的代码中加载WebView的方式(当然在XML中有相应的WebView):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) this.findViewById(R.id.webView);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.addJavascriptInterface(new CSJSInterface(getApplicationContext()),"jsInterface");
webView.loadUrl("file:///android_asset/index.html");
}
Javascript接口功能&打回来
@JavascriptInterface
public void showCapture() {
File imageStorageDir = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),CS_MOVIE_DIRECTORY);
// Create the directory if needed:
if (!imageStorageDir.exists()) {
imageStorageDir.mkdirs();
}
// Create camera captured image file path and name
File file = new File(
imageStorageDir + File.separator + "MOV_"
+ String.valueOf(System.currentTimeMillis())
+ ".mp4");
mCapturedImageURI = Uri.fromFile(file);
// Camera capture image intent
final Intent captureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT,mCapturedImageURI);
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("video/*");
// Create file chooser intent
Intent chooserIntent = Intent.createChooser(i,"Video Chooser");
// Set camera intent to file chooser
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,new Parcelable[]{captureIntent});
// On select image call onActivityResult method of activity
startActivityForResult(chooserIntent,CAMERA_CAPTURE_RESULT);
}
调用javascript链接已选择/录制的视频文件:
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
LogUtils.log(LogUtils.DEBUG,"onActivityResult called: " + requestCode + "," + resultCode);
if (requestCode == CAMERA_CAPTURE_RESULT) {
// Test if the WebView is loaded:
if (webView != null) {
LogUtils.log(LogUtils.DEBUG,"Calling javascript to set preview video.");
webView.loadUrl("javascript: showPreview('" + Uri.encode(data.getData().toString()) + "');");
}
}
}
AndroidManifest.xml中
这是我的清单,因为我假设权限可能正在发挥作用
android webview 本地视频播放,javascript – Android WebView不允许加载本地视频文件相关推荐
- html js引用本地资源,【基本解决】js加载本地文件
[背景] 折腾: 期间,可以把问题转换为: 用js,去加载,读取本地的文件. [折腾过程] 1.搜: js load local file js read local file 参考: 试试:func ...
- 浏览器加载本地html页面,在浏览器字段中加载本地HTML文件时是否显示白屏?
我没有完美的答案.如果你看一下at this question,到目前为止,还没有给出关于如何使BrowserField背景透明的答案,这将是一种方式来解决你的问题. 根据您的OTPhelp_en.h ...
- Android中WebView加载本地Html,与JavaScript与Android方法相互传值...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51759125 最近在做项目中,要使用High ...
- Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51809558 接着上篇Android中Web ...
- Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
1.在布局文件中加WebView控件,在java中获取WebView对象. 2.加载本地html文件. webView.loadUrl("file:///android_asset/andr ...
- android webView不能加载本地html文件问题
android中可以加载本地html文件,通过JavaScript进行交互,其中html文件放到assets文件夹下,在调用的时候如下: webView.loadUrl("file:///a ...
- Android中使用WebView加载本地html并支持运行JS代码和支持缩放
场景 Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art ...
- android webView加载网络视频
之前,我写过webView加载本地网页的博客,今天,就写写webView加载网络视频的内容. 一.加载网页 1.WebView用来显示网页,使用必须时刻注意我们需要添加网络权限 <uses-pe ...
- Android中使用WebChromeClient显示Openlayers加载本地GeoJson文件显示地图(跨域问题解决)
场景 Openlayers中加载GeoJson文件显示地图: Openlayers中加载GeoJson文件显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面加载显示GeoJso ...
最新文章
- 大数据及Linux安装
- layui数据表格自定义复选框表头_解决LayUI数据表格复选框不居中显示的问题
- 8G的U盘轻松帮助你安装win7/win8/win10/xp系统
- pci中断号分配_西门子S7-200 SMART中断及中断指令概述
- 【Keras速成】Keras图像分类从模型自定义到测试
- Foundation框架中常用类的介绍
- C++总结篇(1)命名空间及引用
- (31)FPGA面试技能提升篇(CAN)
- 【Spring】Spring Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect‘ not set
- A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象...
- 历经8年双11流量洗礼,淘宝开放平台架构和技术难点解密
- python程序设计与应用_Python程序设计及应用
- JQueryUI进度条组件学习笔记
- mob做php短信接口,【PHP】短信接口(正则匹配)
- C++类内初始值的初始化形式
- 考研计算机专业英语面试自我介绍,计算机研究生面试英文自我介绍
- commons-codec使用简介
- 《用户体验设计:100堂入门课》20190920
- 软件著作权申请 源代码编辑
- 06-B. DS队列之银行排队
热门文章
- matlab mysql建系统_能环水体治理项目(Mysql数据库,Matlab创建GUI界面)【一】
- Java的7大设计原则和23种设计模式
- Windows7 打开任务计划提示“任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”解决办法
- 如何使CAD打印PDF显示清楚
- 中国制造业的突围 --首次物联网产业系列微访谈圆满结束
- 03比对与 bam 文件格式
- Photoshop:使用层遮照制作图像渐变特效(2)
- 内蒙古电大计算机考试成绩查询成绩查询,2021年网络教育7月统考成绩查询时间及入口...
- 使用webots的MPC的移动机器人轨迹跟踪控制
- 妹子说头像爬的太慢?升级到多线程程序爬取头像