为soundjs添加暂停功能

时间:2017-04-28 01:51:14

标签: javascript soundjs

我尝试过使用:

  1. createjs.Sound.pause;

  2. mySound.stop();

  3. 没有任何作用。现在它有一个停止按钮,但如果按下停止按钮,则不会再次播放声音。

    这是我正在使用的声音。 soundjs

    我的代码与它的源代码完全相同。谢谢你的帮助!

    我最终这样做基于Stephen Lightcap回答:

    头标记内的Javascript:

        function load() {
            // Update the UI
            document.getElementById("display").innerText = ".";
    
    
            // Load the sound
            createjs.Sound.alternateExtensions = ["mp3"];
            createjs.Sound.addEventListener("fileload", handleFileLoad);
            createjs.Sound.registerSound({id:"mySound", src:"../../test.mp3"});
        }
    
        function handleFileLoad(event) {
            // Update the UI
            document.getElementById("display").innerHTML = ".";
            document.getElementById("stopBtn").disabled = "";
    
            // Play the loaded sound
            createjs.Sound.play(event.src,{loop:2});
    
        }
        var instance = createjs.Sound.play(event.src);
    </script>
    

    正文标记内的按钮:

    <input id="pausBtn" type="button" value="Pause" onclick="pause()"/>

    点击按钮的Javascript。放在按钮下方。 :

    <script>
    function pause(){
    instance.pause();
    }
    </script>
    

    但是我说错了:

    未捕获的TypeError:无法读取未定义的属性“pause”     暂停时(phkk.html:560)     在HTMLInputElement.onclick(phkk.html:177)

1 个答案:

答案 0 :(得分:0)

您可以将其存储在var中,然后使用函数pause()

var instance = createjs.Sound.play(event.src);

具有调用将存储暂停的方法的按钮

<input id="pausBtn" type="button" value="Pause" onclick="pause()"/>

JS功能:

function pause(){
    instance.pause();
}

修改

我查看了文档,它似乎不再具有这样的功能,因此您将不得不使用paused property

以下是关于它如何为我工作的大致轮廓:

<script>

    var instance; 

    function load() {
        // Update the UI
        document.getElementById("display").innerText = ".";


        // Load the sound
        createjs.Sound.alternateExtensions = ["mp3"];
        createjs.Sound.addEventListener("fileload", handleFileLoad);
        createjs.Sound.registerSound({id:"mySound", src:"../../test.mp3"});
    }

   function handleFileLoad(event) {
       // Update the UI
       document.getElementById("display").innerHTML = ".";
       document.getElementById("stopBtn").disabled = "";

       // Play the loaded sound
       instance = createjs.Sound.play(event.src,{loop:2});

   }

   function pause(){
       instance.paused ? instance.paused = false : instance.paused = true;
   }



</script>

HTML按钮:

<body>
<input id="loadBtn" type="button" value="Begin Loading" onclick="load()"/>
<input id="stopBtn" type="button" value="Stop Playing" onclick="createjs.Sound.stop();" disabled="disabled" />
    <input id="pauseBtn" type="button" value="Pause" onclick="pause()"/>
<label id="display">Waiting for User Input. Click "Begin Loading".</label>