Javascript HTML5视频未播放

Javascript HTML5视频未播放,javascript,jquery,html,button,iframe,Javascript,Jquery,Html,Button,Iframe,我有一个简单的表单,用户可以输入一个名称并提交,当用户输入用户名时,视频会自动在iframe中播放,当用户单击提交时,我想打开一个包含视频的新页面,当用户单击提交时,视频会自动播放 以下是我迄今为止所做的: 表单页面HTML <!DOCTYPE html> <html> <head> <title>Wideo iframe</title> <!-- Website Font style --> &l

我有一个简单的表单,用户可以输入一个名称并提交,当用户输入用户名时,视频会自动在iframe中播放,当用户单击提交时,我想打开一个包含视频的新页面,当用户单击提交时,视频会自动播放

以下是我迄今为止所做的:

表单页面HTML

<!DOCTYPE html>
<html>

<head>
    <title>Wideo iframe</title>
    <!-- Website Font style -->
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
        crossorigin="anonymous">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
    <!-- Google Fonts -->
    <link href='https://fonts.googleapis.com/css?family=Passion+One' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="./css/style.css">
    <link rel="stylesheet" href="./css/form.css">

</head>

<body>

    <iframe id="videoframe" src="videoframe.html"></iframe>
    <br />
    <div class="container">
        <div class="row main">
            <div class="main-login main-center">
                <h5>WYP: Formularz.</h5>
                <form id="formData" name="contact" role="form" method="post" action="thankspage.html" target="_blank">

                    <div class="form-group">
                        <label for="name" class="cols-sm-2 control-label">Imie</label>
                        <div class="cols-sm-10">
                            <div class="input-group">
                                <span class="input-group-addon"><i class="fa fa-user fa" aria-hidden="true"></i></span>
                                <input type="text" class="form-control" name="name" id="name" placeholder="Enter your Name" />
                            </div>
                        </div>
                    </div>

                    <input type="submit" id="button" value="submit" class="btn btn-primary btn-lg">


                </form>
            </div>
        </div>
    </div>



</body>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
        crossorigin="anonymous"></script>
<script src="js/form.js" type="text/javascript"></script>

</html>
这里是videogframe.js

   var autoplay = true;


   var movieName1 = "./videos/videoplayback.mp4"
   var movieThanks = "./videos/darasa.mp4"



   function resizeFunction() {
       $("#videowrapper").height($("#videowrapper").width() * 576 / 1024);

   }

   window.addEventListener("message", receiveMessage, false);

   function receiveMessage(eventPosted) {

       var values = eventPosted.data.split("&");
       var event = values[0].split("=")[1];
       var fieldtype = values[1].split("=")[1];
       var value = values[2].split("=")[1];

       console.log(event, fieldtype, value);

       switch (event) {
           case "fieldchanged":

               switch (fieldtype) {

                       case "name":
                       openSlide("nameSlide", {
                           value: value
                       });

                       case  "submit":
                       openSlide("submitSlide", {
                           value: value,

                       });
                       break;

                   default:
                       break;
               }
               break;
           default:
               console.log("Event not supported");
               break;
       }

   }

   function openSlide(slideName, params) {
       switch (slideName) {
               case "nameSlide":
               openName(params);
               break;

               case "submitSlide":
               openSubmit(params);
               break;
       }

   }

   var params = null;

   function openName(_params) {
    playVideo(movieName1);
   }
   function  openSubmit(_params){
     playVideo(movieThanks);
   }


 // function top play video
   function playVideo(src) {

       $("#playervideo").attr("src", src);
       $("#playervideo")[0].muted = false;


       if (autoplay == true) {

           var playPromise = $("#playervideo")[0].play();

           if (playPromise !== undefined) {

               playPromise.then(function () {}).catch(function () {

                   if (autoplay == true) {
                       $("#video-unmute-button").addClass("show");
                       $("#playervideo")[0].muted = true;
                       var playPromise2 = $("#playervideo")[0].play();

                       playPromise2.then(function () {

                       }).catch(function () {
                           $("#video-start-button").addClass("show");


                           $("#video-start-button").on("click", function () {
                               $("#playervideo")[0].muted = false;
                               $("#playervideo")[0].play();
                               $("#video-start-button").removeClass("show");

                           });
                       });

                       console.log("pause force");
                   } else {

                   }
               });
           } else {}
       } else {

       }

   }
这里是视频帧html页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Wideo iframe</title>
    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
    <link rel="stylesheet" href="css/style.css">

</head>

<body>
    <div id="videowrapper">
        <video  id="playervideo" controls></video>
        <canvas id="videocanvas" width="1024" height="576"></canvas>
        <div id="testform"><input type="text"/></div>
    </div>
</body>
<script src="jslibs/howler.min.js"></script>
<script src="https://code.createjs.com/1.0.0/createjs.min.js"></script>
<script src="js/videoframe.js" type="text/javascript"></script>

</html>

为什么我的视频没有播放?我做错了什么?谢谢。

问题其实很简单,它不起作用,因为您将视频标记放在
thankspage.html
中的iframe标记内,删除iframe标记并添加静音标志,它应该会起作用

所以改变这个

<iframe id="videoframe" src="videoframe.html">
  <video width="320" height="240" controls autoplay>
    <source src="./video/janusz.mp4" type="video/mp4">
  </video>
</iframe>

为此:

<video width="320" height="240" controls autoplay muted>
    <source src="./videos/janusz.mp4" type="video/mp4">
</video>

这当然会破坏你的CSS,但是你可以很容易地通过把视频标签放在一个div中并操纵div来调整它的大小


正如您在这里看到的:

您是否尝试播放静音属性设置为true的视频?hii nik我现在将尝试,您可以尝试在其简单的html javascript页面上方有repo链接,只需克隆它并运行formpage.html,如果您将mmute设置为true,当您输入用户名播放视频时,您可以看到一切nik,所以这并不能解决问题?你能设置一个演示吗?因此,我们可以帮助您调试它(创建一个小提琴或弹琴),您将不会自动播放未静音的视频。这是一个浏览器供应商的政策,我们的许多客户无法理解,许多用户非常感谢Hanks islam,我想在iframe中播放视频,因为它们将用于另一个域删除该视频标记并添加eventlistner来发布消息,检查其他视频我是如何做到的,我想要同样的,但不幸的是我不知道如何使用submit按钮我尝试过这样的东西:`$(“输入按钮”).on(“onlick”,function(){document.getElementById('videoframe').contentWindow.postMessage(“event”+“button”+”&value=“+$(“输入按钮”).val(),“*”)})`@user9964622我的答案回答了您当前的问题,您在原始帖子中没有指定任何其他内容。你还有其他问题吗?
<iframe id="videoframe" src="videoframe.html">
  <video width="320" height="240" controls autoplay>
    <source src="./video/janusz.mp4" type="video/mp4">
  </video>
</iframe>
<video width="320" height="240" controls autoplay muted>
    <source src="./videos/janusz.mp4" type="video/mp4">
</video>