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