我正在研究Android的应用程序端口,但遇到了我花了大约8个小时试图修复的问题。我有这2首歌
Ptero_Lose_Music
score
通过带
的变量加载 "Ptero_Lose_Music" : "audio/Ptero_Lose_Music"
"score" : "audio/score"
当我在我的游戏画面中调用这两首歌曲时,我想首先播放丢失的音乐,然后是乐谱。我称之为
Ptero.audio.play('Ptero_Lose_Music');
Ptero.audio.play('score');
同时播放它们。到目前为止我已经尝试了
Ptero.audio.play('Ptero_Lose_Music').addEventListener('ended', function(){
Ptero.audio.play('score');)}
和更多if if语句处理时间。我已经尝试使用gameover场景的.currentTime作为' if'的参数。用于调节歌曲之间时间的声明,但它仍然同时播放它们。我相信我不明白如何正确地对这些类音频进行排序。
所以我用你的答案更新了片段,似乎在进入游戏画面或播放音频之前冻结
function init() {
Ptero.audio.addEventListener('ended', function _next() { // named so..
//this.removeEventListener('ended', _next); // .. we can stop infinite loop
this.play('score');
});
Ptero.audio.play('Ptero_Lose_Music');
//Ptero.audio.play('drop_menu');
我不一定会尝试使用eventlistener,我只想要一个完成后播放一个声音的最好方法。
答案 0 :(得分:0)
当您使用事件监听器时,您已尝试在mediaElement.play
上链接它,这是 void 方法。相反,设置监听器然后在
假设Ptero.audio
是<audio>
元素
Ptero.audio.addEventListener('ended', function _next() { // named so..
// this.removeEventListener('ended', _next); // .. we can stop infinite loop
// replace _src_ or <source>?
this.play('score');
});
// set up _src_ or <source>?
Ptero.audio.play('Ptero_Lose_Music');
此外,由于mediaElement.play
不期望任何参数,您没有准确显示您在代码中所做的事情,这就是为什么我添加了评论// set up _src_ or <source>?
答案 1 :(得分:0)
我最终使用了大胆,只将两个声音合二为一,然后在输出屏幕上初始化
Ptero.audio.play('Ptero_Lose_Music');