Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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
Javascript 当我播放视频时,Safari将打开新窗口_Javascript_Css_Ios_Safari_Mobile Safari - Fatal编程技术网

Javascript 当我播放视频时,Safari将打开新窗口

Javascript 当我播放视频时,Safari将打开新窗口,javascript,css,ios,safari,mobile-safari,Javascript,Css,Ios,Safari,Mobile Safari,我用javascript创建了一个视频标记,并使用画布显示视频: const canvas = document.getElementById('canvas'); const ctx2d = canvas.getContext('2d'); const videoElement = document.createElement('video'); videoElement.height = canvas.height; videoElement.width = canvas.width; v

我用javascript创建了一个视频标记,并使用画布显示视频:

const canvas = document.getElementById('canvas');
const ctx2d = canvas.getContext('2d');

const videoElement = document.createElement('video');
videoElement.height = canvas.height;
videoElement.width = canvas.width;
videoElement.playsinline = "playsinline";
videoElement.setAttribute('webkit-playsinline', 'webkit-playsinline');

videoElement.src = '.....';
videoElement.autoplay = false;
videoElement.loop = false;
videoElement.muted = true;

videoElement.addEventListener('play', () => {
  (function loop() {
    if (videoElement && !videoElement.paused && !videoElement.ended) {
            ctx2d.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
            setTimeout(loop, 1000 / 30); // drawing at 30fps
    }
   })();
});
问题在于我的ios设备(iPhone11-safari),当我播放视频时,ios会在新窗口(全屏)中播放视频

我需要做什么来解决这个问题?这里有safari开发者吗

这是我播放视频时得到的。safari的全屏模式


这是safari的默认行为,我认为您无法更改。只要您有“playsinline”,它就应该可以工作。我不知道画布内部的想法:如果你有较旧的iOS,请尝试webkit playsinline我添加
webkit playsinline
-仍然不起作用。我认为如果我在js中创建视频标签并播放视频,iOS将全屏显示,无论我是否有画布。