Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过html5——android加载SD卡视频_Android_Html_Video - Fatal编程技术网

通过html5——android加载SD卡视频

通过html5——android加载SD卡视频,android,html,video,Android,Html,Video,我是html5新手,谁能帮我加载html视频标签,也就是从SD卡加载视频。我试图实现 由于安全原因,HTML5文件系统API不允许网页仅在沙盒文件系统中打开和操作文件,不幸的是,这个沙盒的限制由浏览器决定 一种可能的解决方法是,您可以创建一个文件输入元素,允许用户选择一个视频文件,然后将其作为视频元素的src属性传递 还请注意,如果不添加文件:后缀,视频将无法播放, 因此,请确保视频标记的语法如下所示 <video width="365" height="200" src="file://

我是html5新手,谁能帮我加载html视频标签,也就是从SD卡加载视频。我试图实现


由于安全原因,HTML5文件系统API不允许网页仅在沙盒文件系统中打开和操作文件,不幸的是,这个沙盒的限制由浏览器决定

一种可能的解决方法是,您可以创建一个文件输入元素,允许用户选择一个视频文件,然后将其作为视频元素的
src
属性传递

还请注意,如果不添加
文件:
后缀,视频将无法播放, 因此,请确保视频标记的语法如下所示

<video width="365" height="200" src="file:///sdcard/Download/video.mp4" controls autobuffer></video>

这一技巧只适用于默认的chrome浏览器

所以,不,出于安全原因,没有办法精确地执行您想要的操作,但是您可以尝试一些变通方法

更新1:

<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<video id="video" width="320" height="240" controls>
  <source src="" type="video/mp4">

  Your browser does not support the video tag.
</video>

<script>
$(document).on('ready',function(){
var video = $("#video");

function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('video.*')) {
        continue;
      }



      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {
        return function(e) {
        video.get(0).src = e.target.result;
        console.log(video.get(0));
        video.get(0).play();


          var span = document.createElement('span');
          span.innerHTML = "a video file";
          document.getElementById('list').insertBefore(span, null);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);

});

您的浏览器不支持视频标记。
$(文档).on('ready',function(){
var video=$(“#video”);
功能手柄文件选择(evt){
var files=evt.target.files;//文件列表对象
//循环浏览文件列表并将图像文件渲染为缩略图。
for(var i=0,f;f=files[i];i++){
//仅处理图像文件。
如果(!f.type.match('video.*')){
继续;
}
var reader=new FileReader();
//闭包以捕获文件信息。
reader.onload=(函数(文件){
返回函数(e){
video.get(0.src=e.target.result;
console.log(video.get(0));
video.get(0.play();
var span=document.createElement('span');
span.innerHTML=“视频文件”;
document.getElementById('list').insertBefore(span,null);
};
})(f) );
//作为数据URL读入图像文件。
reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change',handleFileSelect,false);
});
使用以下代码可以读取视频文件并将其传递给视频元素并播放


PS:唯一的问题是它首先将视频文件加载到内存中,如果视频太大,它会使浏览器崩溃。因此,请检查此技巧是否适用于您

非常感谢您或回复。是否可以在webview中运行上述html,请您解释一下。我为此花了三天多的时间,但仍然无法得到正确的解决办法。@HariRam:请检查更新的答案,并尝试一下这个黑客是否可以帮助您。:)