繁体   English   中英

Web浏览器上的SVG和音频

[英]SVG and audio on web browser

我想知道是否可以在Web浏览器中播放带有SVG文件的音频。 我在这里找到了这个线程 ,但是我无法对其进行评论= /

因此,我看到了此网页的代码,但是当我尝试该代码时对我来说不起作用。 我的控制台说:

TypeError: $(...).play is not a function[En savoir plus]  test.html:1:1
TypeError: $(...).pause is not a function[En savoir plus]

而且我不知道该如何处理= /

这是代码:

<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:html="http://www.w3.org/1999/xhtml" viewBox="0 0 1600 1000">
  <defs>
    <style>
      :root { background: black }
      text { fill: white; font: 60px sans-serif; font-weight: 900; text-anchor: middle; pointer-events: none }
      #about { pointer-events: visiblePainted; }
      a { fill: #4096EE; }
      a:hover { text-decoration: underline; }
      .button:hover { filter: url(#huerot80) }
      .button:active { filter: url(#huerot50) }
      #about { font-size: 12px }
    </style>
    <filter id="ds">
      <feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
      <feOffset dx="2" dy="2"/>
      <feComposite in="SourceGraphic" operator="over"/>
    </filter>
    <filter id="huerot80" x="0" y="0" width="1" height="1">
      <feColorMatrix type="hueRotate" values="80"/>
    </filter>
    <filter id="huerot50" x="0" y="0" width="1" height="1">
      <feColorMatrix type="hueRotate" values="50"/>
    </filter>
    <linearGradient id="stops">
      <stop style="stop-color:#4096EE;stop-opacity:1" offset="0"/>
      <stop style="stop-color:#4096EE;stop-opacity:0" offset="1"/>
    </linearGradient>
    <linearGradient x1="0" y1="0" x2="0" y2="-1.5" id="fill" xlink:href="#stops" spreadMethod="reflect"/>
    <linearGradient x1="0" y1="0" x2="0" y2="-1.5" id="stroke" xlink:href="#stops" spreadMethod="reflect" gradientTransform="scale(1 -1)"/>
    <script>
      function $(sel) { return document.querySelector(sel); }
    </script>
    <audio xmlns="http://www.w3.org/1999/xhtml">
      <source src="assets/sounds/sound.ogg" type="audio/ogg"/>

    </audio>
  </defs>

  <g class="button" transform="translate(600, 200)">
    <rect width="400" height="86" rx="16"
       fill="url(#fill)" stroke="url(#stroke)"
       onclick="try { $('audio').currentTime=0; } catch(e) {} $('audio').play()"/>
    <text x="200" y="65" filter="url(#ds)">Click me</text>
  </g>

  <g class="button" transform="translate(600, 300)">
    <rect width="400" height="86" rx="16"
       fill="url(#fill)" stroke="url(#stroke)"
       onmouseover="$('audio').play(); $('audio').loop=true;" onmouseout="$('audio').pause(); try { $('audio').currentTime=0; } catch(e) {} $('audio').loop=false;"/>
    <text x="200" y="65" filter="url(#ds)">Hover me</text>
  </g>

  <text id="about" x="50%" y="50%">This example uses HTML5 audio together with SVG.
    <a xlink:href="http://soundbible.com/1137-Bubbles.html">Bubbles sound effect</a> recorded by Mike Koenig (<a xlink:href="http://creativecommons.org/licenses/by/3.0/">CC-By</a>).
  </text>

</svg>

而已。

干杯=)

我在其他地方找到了答案。 我只需要将test.html重命名为test.svg并删除<html><head>块。 现在它就像一种魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM