javascript - 如何使用字符串在 popcorn.js 中选择轨道并播放?

标签 javascript string sockets eval popcornjs

所以,这是瘦的:

在 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/

相关文章:

java - 如何使用 ""初始化字符串?

java - 如何使用 String.contains 在 java 中最好地搜索字符串列表?

linux - linux write 和 sendfile 系统调用的区别

c - 在非阻塞套接字连接中,select() 总是返回 1

c - Bsd 套接字如何找到用于连接的服务器端口号?

javascript - 传递 React 浅 enzyme 测试用例的上下文 -jest

javascript - 使用 Javascript if 语句以及 and 运算符和选择器来创建导航栏

javascript - 从数组列表中返回唯一数组

javascript - Factory - AngularJS 中的 then 和 Catch Promise 链

c - 警告 : format not a string literal, 未检查参数类型