动态路径变量播放音频.mp3文件如何? d3 javascript coffe脚本

时间:2014-11-19 23:30:04

标签: javascript jquery csv audio d3.js

我正试图播放声音文件" mouseover"。它在我将.mp3文件的路径硬编码时起作用,代码如下所示。

我的值,包括多个.mp3文件的路径,都存储在.csv文件中。 我需要找到一种方法来喂养'变量的路径值。

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

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语句,即用一个变量替换硬编码路径,该变量保存该节点的路径值。 以下代码显示了' file'的正确值。在console.log中,但它显示未定义的" 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

我的问题,初学者,我如何操纵/设置文件变量,以便它正确地附加到源路径:" sound / file-value-as-string-here"在setAttribute语句中?非常感谢你。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

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()

答案 1 :(得分:0)

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

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