我目前有一个在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() { });
但似乎无法使这些工作起作用,我不确定我是否必须在原始函数中包含此绑定事件..它已经让我好几个小时了。
感谢社区。 p>
答案 0 :(得分: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()
以及我提供的链接中列出的其他对象。希望这有帮助