将“结束”事件绑定到没有 ID 或类的声音播放

Binding 'ended' event to sound playing without ID or Class

本文关键字:ID 播放 声音 结束 事件 绑定      更新时间:2023-09-26

我目前有一个函数设置,可以在TideSDk(一个应用程序包装程序)中播放声音,如下所示:(注意:Ti.Media是来自TideSDk的API)

function playSound(soundFilePath){
        var s = Ti.Media.createSound(soundFilePath);
        s.play();
        }

然后我像这样调用这个函数:(再次不要担心 Ti.Filesystem,更多的 API)

$("#audioMain").click(function() {
         var sound = 'Level1/my_body_here_i_am/audio/f_sentence1.mp3';
         playSound(Ti.Filesystem.getFile(Ti.Filesystem.getResourcesDirectory(), sound).nativePath())            
            });

我在这里的问题是我需要以某种方式将"结束"事件绑定到播放的声音,它通常就像

$('#someID').bind('ended', function() {
    //do something
    });

但是由于我不能在这里使用 ID 或类,我不知道要绑定到什么。我试过:

sound.addEventListener("ended", function() { }); or
s.addEventListener("ended", function() { });

但是似乎无法使任何这些工作,我不确定我是否必须在原始函数中包含此绑定事件..它已经让我烦恼了几个小时。

谢谢社区。

快速浏览TideSDK文档后,似乎您可以执行以下操作:

function playSound(soundFilePath){
        var s = Ti.Media.createSound(soundFilePath);
        s.play();
        s.onComplete(function(){
           alert("sound finished");
        });
}

查看此处以了解所有细节 - http://tidesdk.multipart.net/docs/user-dev/generated/#!/api/Ti.Media.Sound

看起来调用 Ti.Media.createSound(); 返回 Ti.Media.Sound 对象,该对象具有 .play() 方法以及我提供的链接中列出的其他方法。希望这有帮助