如何在 svg 元素之上播放 html 5 视频

How to play html 5 video on top of svg element?

本文关键字:播放 html 视频 svg 元素      更新时间:2023-09-26

我有一个六边形形状的 svg 元素,里面有一个图像作为图案(工人图片)。

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1400" height="1550" viewBox="0 0 140 155" class="svgMember memberPicLeft" id="erikSvg">
  <defs>
     <pattern id="svgImg" x="0" y="0" height="1" width="1">
       <image x="-10" y="-40" width="120%" height="160% xlink:href="assets/img/picture.jpg"></image>
     </pattern>
  </defs>
  <path fill="url(#svgImg)" 
    d="M69.999,153.831c-1.797,0-3.596-0.466-5.208-1.396L7.708,119.479c-3.222-1.861-5.208-5.3-5.208-9.021V44.542
    c0-3.721,1.986-7.159,5.208-9.021L64.791,2.564c1.612-0.93,3.411-1.396,5.208-1.396c1.799,0,3.598,0.466,5.209,1.396l57.083,32.957
    c3.224,1.861,5.21,5.3,5.21,9.021v65.916c0,3.721-1.986,7.159-5.21,9.021l-57.083,32.957
    C73.596,153.365,71.797,153.831,69.999,153.831z"/>
</svg>

如何将视频添加到 svg 元素,以便在悬停时视频将使用元素 (-webkit-mask-image) 蒙版播放:包含在元素边框中。我尝试只添加视频标签:

<video id="myVideo" autoplay>
   <source id="mp4_src" src="assets/video/video.mp4" type="video/mp4">
</video>

这当然是行不通的。在谷歌上找不到任何解决方案。感谢您的任何帮助!

SVG 不支持视频元素。我见过一些支持它的Opera和Firefox的实验性版本,但普通浏览器没有。

您可以使用HTML,CSS和Javascript将视频作为叠加层附加。