无法播放在 html 上使用输入文件标签选择的视频(本地)



我正在制作一个只需要在本地运行的html网页(离线网站)。使用"输入文件标签",用户选择并给出需要播放的视频文件路径。对于视频播放器,我使用的是 html 的视频标签。

我尝试使用以下代码执行此操作,但视频无法播放。请帮助我。

注意:这是一个离线网站。

法典:

<html>
<head>
<script>
        function func() {
            var videolink = document.getElementById('fileID');
            var player = document.getElementById('videoID');
            var mp4Vid = document.getElementById('sourceID');
            $(mp4Vid).attr('src',videolink);
            player.load();
            player.play(); 
        }
    </script>
</head>
<body>
<input type="file" id="fileID" />
<input type="button" onClick="func();"/>
<center>
<video id="videoID" width="320" height="240" controls autoplay>
  <source id="sourceID"  type="video/mp4">
</video>
</center>
</body>
</html>

尝试更改以下内容:

$(mp4Vid).attr('src',videolink);

关于这一点:

$(mp4Vid).attr('src', '' + videolink).appendTo($('#sourceID'));

你不能单独使用 JavaScript,除非在现代浏览器上。

问题

这是一项 Web 浏览器安全功能,用于遮挡文件上传的完整路径。如果您尝试读取文件上传字段的值,您将收到如下所示的内容:

$('input[type="file"]').val(); // "C:fakepathsome_file.mp4"

即使在这个假设中该文件存在于我的桌面上(例如,~/Desktop/some_file.mp4 )。

解决方法

现代浏览器上,请参阅"在HTML5中如何在上传前显示图像预览?",以对文件输入使用FileReader并使用其源。否则,您可能可以使用已安装的Adobe Flash执行此操作。

最新更新