首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览后如何在jsp中显示视频?

浏览后如何在jsp中显示视频?
EN

Stack Overflow用户
提问于 2015-10-09 11:02:38
回答 1查看 90关注 0票数 0

我有输入文件元素。

此元素id ="upload"的id。

当我在jsp上迭代相同的元素时,它与<视频>一起出现在我的jsp中好几次。

现在,我想显示视频后,我从我的系统在每个输入标签。

但是第一个输入元素工作得很好,但之后出现的其他输入文件标记就不行了。

有人能建议我如何通过Jquery或Javascript来解决这个问题吗?

“守则”如下:

在jsp中:

代码语言:javascript
复制
      <div id='1'>
      < input type="file" id="uploadBtn" name="video" placeholder="browse file" >
        < video id="addVideo" controls autoplay >< / video>
        < div id="v_message">< /div>
      </div>


    <div id='2'>
    < input type="file" id="uploadBtn" name="video" placeholder="browse file" >
        < video id="addVideo" controls autoplay >< / video>
        < div id="v_message">< /div>
    </div>
    .......
    .......
    .......
    <div id='n'>
    < input type="file" id="uploadBtn" name="video" placeholder="browse file" >
        < video id="addVideo" controls autoplay >< / video>
        < div id="v_message">< /div>
    </div>

我在剧本中写道:

代码语言:javascript
复制
 (function localFileVideoPlayerInit(win) {
    var URL = win.URL || win.webkitURL,
        displayMessage = (function displayMessageInit() {
            var node = document.querySelector('#v_message');

            return function displayMessage(message, isError) {
                node.innerHTML = message;
                node.className = isError ? 'error' : 'info';
            };
        }()),
        playSelectedFile = function playSelectedFileInit(event) {
            var file = this.files[0];

            var type = file.type;

            var videoNode = document.querySelector('#addVideo');

            var canPlay = videoNode.canPlayType(type);

            canPlay = (canPlay === '' ? 'no' : canPlay);

            var message = 'Can play type "' + type + '": ' + canPlay;

            var isError = canPlay === 'no';

            displayMessage(message, isError);

            if (isError) {
                return;
            }

            var fileURL = URL.createObjectURL(file);

            videoNode.src = fileURL;
        },
        inputNode = document.querySelector('#uploadBtn');

    if (!URL) {
        displayMessage('Your browser is not ' + 
           '<a href="http://caniuse.com/bloburls">supported</a>!', true);

        return;
    }                

    inputNode.addEventListener('change', playSelectedFile, false);
}( window));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 09:02:29

我只是像下面这样解决这个问题:

这就是我想要的。这样,无论有多少输入文件与id= "addVideo“放在同一个jsp中,我都可以替换视频。而视频将在相应的视频标签中自动播放。

代码语言:javascript
复制
         $(document).delegate("#addVideo","change",function showVideoFile(event){
    var vid = $(this).parent().find("Video");
    if (this.files && this.files[0]) {

         var filerdr = new FileReader();
         filerdr.onload = function(event) {
             vid.attr('src', event.target.result);
         },
         filerdr.readAsDataURL(this.files[0]);
         }

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33036620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档