2015-01-22 3 views
1

Итак, вот тощий:Как выбрать трек в popcorn.js с помощью строки и воспроизвести ее?

Запуск popcorn.js на видео с YouTube и отдельными звуковыми контурами. Каждый из них является дорожкой, такой как «видео» и «аудио1» и т. Д.

У меня есть взаимодействие с пользователем сокетами, которые отправляют команды в окно в виде строк, таких как «Play_audio1». Затем эта строка анализируется с использованием split.

таким образом мы получаем:

var messageArray = message.split("_"); 

таким образом messageArray [0] моя команда, и messageArray [1] является то, что трек, чтобы сделать это до.

ПРОБЛЕМА

Я пытаюсь выполнить код, чтобы выбрать дорожку, используя окно и запустить попкорн функция воспроизведения() на него, но он AINT работает. Сбрасывает обратно неопределенные.

case 'Play': 
    window[messageArray[1]][play](); 
break; 

Где моя ошибка?

eval() работает, но я слышал, что это был дьявол.

EDIT:

Чтобы добавить к этому, я буду включать код popcorn.js дорожки:

var audio1 = Popcorn.smart("#audio1", "audiofile1.wav",{ 
     frameAnimation: true 
    }); 

и в вашем HTML, вы должны

<audio id="audio1"></audio> 

попкорн .js заполняет его выбранным вами файлом и для воспроизведения обычно используется

audio1.play(); 
+0

что возвращаемый этим: окно [ "AUDIO1"]? –

+0

Я установил var track = window ["audio1"] и попробовал track.play(). это возвращено «undefined is not a function» Добавление только окна [«audio1»] ничего не дало и не было возврата. – awinter

+0

введите его в консоль и посмотрите, что он возвращает –

ответ

0

Я думаю, это потому, что вы используете messageArray [1] в качестве индекса для окна. Возможно, сначала вы должны попытаться создать переменную с этим значением. Затем используйте его внутри окна.

var audioFile = messageArray[1];

+0

Не работает К сожалению. Возвращает «play is not defined» – awinter

+0

Попробуйте сделать что-то вроде этого: 'window.track = messageArray [1]; window.command = messageArray [0]; ' –