0

我目前有一个在 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() { });

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

感谢社区。

4

1 回答 1

1

快速浏览 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()希望这可以帮助

于 2013-09-11T10:24:56.210 回答