2012-11-01 3 views
1

Только что начал смотреть на popcorn.js, но с некоторыми проблемами.popcorn.js время начала и остановки

У меня есть 30-секундный трек,

однако я хотел бы файл, чтобы начать воспроизведение с 2-х секунд в, и прекратить играть за 3 секунды до конца.

Кто-нибудь знает, возможно ли это, поскольку я не мог найти его в документации?

Либо это, либо есть команда для перехода к точке на временной шкале, так что почти как

pop.playAt('2 second'); 

что-то подобное?

Благодаря

ответ

5

Там находятся два простых шага здесь: 1) заблаговременное видео на две секунды в 2) Убедитесь, что он останавливается на 27 секунд (30 - 3)

Для продвижения видео, вы можете использовать метод currentTime, но вы столкнетесь с ошибкой, если попытаетесь установить currentTime перед загрузкой метаданных видео. (При первом создании видео, браузер не знает, что продолжительность, пока она не получает заголовок, и вы не можете установить CURRENTTIME позже, чем продолжительность.)

var popcorn = Popcorn('#video'); 
if (popcorn.duration()) { 
    popcorn.currentTime(2); 
} else { 
    popcorn.on('loadedmetadata', function() { 
    popcorn.currentTime(2); 
    } 
} 

Теперь, чтобы убедиться, видео останавливается на 27 секунд, вы можете использовать метод «cue», который занимает несколько секунд, и функция обратного вызова для этого в то время.

popcorn.cue(27, function() { 
    popcorn.pause(); 
}); 

Теперь, по умолчанию, Popcorn генерирует события, когда он получает «timeupdate» событие из видео, которое, как правило, каждый второй 1/4 (250мс). Таким образом, вы можете увидеть, как видео длится несколько кадров. (например, он может остановиться на 27,1 секунды). Если вам нужна более высокая точность, используйте параметр frameAnimation, который позволяет попкорну обновить до 60 кадров в секунду (каждые 16 мс).

var popcorn = Popcorn('#video', { 
    frameAnimation: true 
}); 

Вы также можете сэкономить время загрузки, говоря браузер только попросить веб-сервер для части видео вам нужно, с помощью добавления подсказки в виде якоря в URL.

http://example.com/videos/myvideo.webm#t=2,27 

Это зависит от поддержки браузера и веб-сервера, но это не может повредить.

Редактировать: На самом деле, не используйте frameAnimation здесь. Проблема в том, что он использует requestAnimationFrame, и вы не можете гарантировать, что он будет вызываться, если ваша вкладка браузера не видна. Это имеет смысл для анимации, но не здесь. Я, вероятно, предложу исправление для этого в popcorn.js.

+0

Спасибо за это Брайан, работающий до степени! Однако теперь наша проблема состоит в том, что у нас есть, возможно, бесконечное количество игроков на странице, однако мы можем сказать, что у нас есть 2 игрока на странице, второй игрок не может взаимодействовать с/если только первый игрок на странице не имеет игра была нажата, поэтому вам нужно нажать кнопку воспроизведения на первом видео до того, как элементы управления 2-го игрока будут работать, любые идеи, почему это может произойти? спасибо – Owen

+0

Я не уверен, почему вам нужно больше, чем один игрок. Вы пытаетесь последовательно воспроизводить несколько клипов? Если вы хотите поделиться своим кодом, я могу взглянуть и посмотреть, что еще может быть отключено. – brianchirls

+0

У нас есть около 30 разборных div, у каждого из которых есть другой игрок.У нас есть 1 50-минутный аудиофайл, в котором есть контрольные точки. Также как время начала и остановки. Таким образом, Div 1, будет содержать, между 0 и 30 с 21 ключевыми точками, Div 2 будет содержать от 31 до 50 секунд 20 контрольных точек. Тем не менее, проблема была полу разрешена с помощью «предварительной загрузки», однако теперь мы замечаем, что браузер загружает файлы mp3, m4a и ogg, даже если он поддерживает только 1 из них, а затем загружает тот же файл в 40 раз, 40 экземпляров на странице! немые браузеры! – Owen

Смежные вопросы