javascript - 每次将元素添加到 SVG 时播放音频剪辑 - d3.js

标签 javascript html audio d3.js svg

每次使用 d3.js 将元素添加到我的 SVG 时,我都会尝试播放音频剪辑,但它只播放一次。有人可以帮忙吗?

imgs = svg.selectAll("image")
            .data(dataset)
            .enter()
            .append("svg:image")
                .attr('width', 75)
                .attr('height', 75)
                .attr('opacity', 0)
                .attr("x", function(d, i) {
                    return d[0] + "px";
                })
                .attr("y", function(d) {
                    return d[1] + "px";  //Height minus data value
                })
                .attr("xlink:href", "./images/skull.png");

imgs.transition()
        .delay(function(d, i) {
            return i * 750;
        })
        .each(function(){
            audio.play();

            audio.currentTime = 0;
            if(audio.ended) {
                console.log('ended');
            }
            else {
                console.log('not ended');
            }
        })
        .duration(1000)
        .attr('opacity', 1);

最佳答案

我还遇到了一些与 d3 回调相关的问题。但我更喜欢明确设置一些属性集,就像我设置 x 位置并在播放音频期间一样。它对我有用。

    imgs.transition()
        .delay(function(d, i) {

            return i * 1000;
        })
        .duration(1000)
   .attr("x", function(d, i) {
                    playAudio();
                    return d[0] + "px";
                })
        .attr('opacity', 1);

  function playAudio()
  {
   audio.play();
  }

关于javascript - 每次将元素添加到 SVG 时播放音频剪辑 - d3.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32626031/

相关文章:

javascript - 如何将音频 base64 字符串下载为 mp3 文件而不损坏它?

ios - iOS 上的视频 HTML5 : Autoplay with sound on click only

iphone - 停止闲置一段时间后,IOS音频将无法工作

php - 从其他网站剪辑图像并将其添加到我的网站

javascript - 使用 AQL(或 arangojs)从 ArangoDB 获取 d3 数据

html - 代码中发生了什么使下拉按钮不遵循与其他按钮相同的格式?

javascript - 在模式框/弹出窗口中查看值 - HTML、JavaScript、PHP 和 JavaScript

php - 网站文件和文件夹结构

javascript - 无法读取属性 'Value'

javascript - Dojo 可移动以提供动态内容