所以,这是瘦的:
运行爆米花.js在YouTube视频和单独的音频循环上。每一个都是一个轨道,如"视频"和"音频1"等。
我通过套接字进行用户交互,该套接字将命令作为"Play_audio1"之类的字符串发送到窗口。然后使用 split 解析此字符串。
所以我们得到:
var messageArray = message.split("_");
因此,messageArray[0] 是我的命令,而 messageArray[1] 是要执行它的轨道。
问题所在
我正在尝试执行代码以使用窗口选择曲目,并在其上运行爆米花函数 play(),但它不起作用。回击未定义。
case 'Play':
window[messageArray[1]][play]();
break;
我的错误在哪里?
eval() 有效,但我听说是魔鬼。
编辑:
为了帮助添加这一点,我将包含一个爆米花.js曲目代码:
var audio1 = Popcorn.smart( "#audio1", "audiofile1.wav",{
frameAnimation: true
});
在你的 HTML 中,你有
<audio id="audio1"></audio>
爆米花.js用您选择的文件填充它,要播放,您通常只需使用
audio1.play();
这是因为您使用 messageArray[1] 作为窗口的索引。也许您应该先尝试使用该值创建一个变量。然后在窗口内使用它。
var audioFile = messageArray[1];