动态路径变量播放音频.mp3文件 如何?D3 JavaScript 咖啡脚本

Dynamic path variable to play audio .mp3 file How to ? d3 javascript coffe script

本文关键字:D3 JavaScript 咖啡 脚本 如何 文件 变量 路径 播放 音频 mp3      更新时间:2023-09-26

我正在尝试在"鼠标悬停"时播放声音文件。当我对.mp3文件的路径进行硬编码时,它有效,代码如下所示。

不过,我的值(包括多个.mp3文件的路径)存储在.csv文件中。我需要找到一种方法将路径值"馈送"到变量。

这是我的初始要素。有多个节点,从.csv解析中获取值。鼠标悬停时,我可以播放 - "硬编码路径" - .mp3文件确定:

labelEnter.append("span")
  .attr("class", "bubble-sound")
  .attr("height", 40 )
  .attr("width", 70 )
  .attr("src",(d) -> "sounds/"+fileValue(d))
  .on("mouseover",  (d, i) -> playSound d.file)
playSound = (d) ->
    # hardcoded here in next line
  snd.setAttribute "src", "sounds/Hungarian_FSI_1_0.00.06.059-0.00.07.229.mp3"
  snd.load()
  snd.play()
  return
snd = new Audio()
onPlay = (e) ->
  snd = new Audio()
  snd.addEventListener "play", onPlay

我正在尝试将从.csv解析的路径值解析到 snd.setAttribute 语句中,也就是说,将硬编码路径替换为保存该节点路径值的变量。以下代码在控制台.log中显示了"file"的正确值,但它显示"setAttribute"路径的未定义

playSound = (d) ->
  file = fileValue(d)
      # console log shows desired value of 'file'
  console.log("Show me " + file)
      # 'file' undefined
  snd.setAttribute "src", "sounds/"+file
  snd.load()
  snd.play()
   on "mouseoverreturn

的问题,初学者,我如何操作/设置文件变量,以便它正确地附加到源路径:setAttribute 语句中的"声音/文件值作为字符串在这里"?谢谢。

尝试这样的事情:

playSound = (d) ->
  file = fileValue(d)
      # console log shows desired value of 'file'
  console.log("Show me " + file)
      # 'file' undefined
  snd.setAttribute("src", "sounds/"+file); //<-- this line changed
  snd.load()
  snd.play()

感谢您的回复;这是我的最终解决方案:

playSound = (d) ->
    file = fileValue(d)
    console.log("Show me " + file)
    snd.setAttribute("src", "#{file}")
    snd.load()
    snd.play()
    return
  snd = new Audio()
  onPlay = (e) ->
    snd = new Audio()
    snd.addEventListener "play", onPlay