【问题标题】:I want to combine first function to the second one, so I can call it only once我想将第一个函数与第二个函数结合起来,所以我只能调用一次
【发布时间】:2015-09-16 05:22:19
【问题描述】:

我想将第一个函数与第二个函数结合起来,所以我只能调用一次。基本上我有 2 个正在播放的 html5 音频文件。一切正常。但是如果我播放我的第一个音频,并且在此期间如果我单击第二个音频,第一个音频上的暂停按钮不会更改为默认值(关闭)

//First function 

function toggleState(item) {
  if (item.className == "play") {
    item.className = "pause";
  } else {
    item.className = "play";
  }
}

//Second function
// Play stop Music
function EvalSound(soundobj) {
  var thissound = document.getElementById(soundobj);
  if (thissound.paused) {
    thissound.play();
  } else {
    thissound.pause();
  }
}

【问题讨论】:

  • 结合是什么意思你能举个例子+1来使用纯js而不是一些奇怪的库顺便说一句
  • 它基本上是用于音频文件的。我需要播放和暂停按钮的开/关状态。只有一个功能无法按我的意愿工作。所以我需要混合两者来达到结果。
  • 所以你想切换播放/暂停功能和播放/暂停类名?在这些函数中,soundobjitem 变量指的是同一个东西吗?
  • 原则是问题应该在“问题”中(确实如此),但您的解决方案应该是“答案”,因此我们希望您edit您的问题,删除“解决方案”,并将该“解决方案”移动到“答案”中。这样引擎会识别出有答案,您可以接受该答案并将问题标记为已回答。
  • 叹息。为什么这些“未回答”的问题一直处于作者不回答和关闭的状态。太烦人了。

标签: javascript html5-audio


【解决方案1】:

这个问题的主人用以下解决方案回答了这个问题:

我设法像这样修复它。

function toggleState(item, soundobj) {
  var thissound = document.getElementById(soundobj);
  if (item.className == "play") {
  thissound.play();
  item.className = "pause";
 } else {
  thissound.pause();
  item.className = "play";  
 }
}

我还设法获得了当前的曲目列表标题。例如,您单击一首歌曲,它会显示在 之后,例如“正在播放 blablabla 歌曲”。

我在下面向您展示一个工作示例。

HTML:

<option id="1" title="Now Playing." value="URL.mp3">Song name</option>

Javascript:

audioURL = document.getElementById('mylist');
var f = audioURL.options[audioURL.selectedIndex].title; //Here is title  
document.getElementById("demo").innerHTML = f; //output to f at demo elem.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多