Войти
Урок создания flash видео плеера
18.05.2010 | Кат. Полезные заметки | 1550
Рассмотрим пример создания флеш проигрывателя для видео файлов, который можно установить на свой сайт, позволив посетителям сайта смотреть видео на сайте без скачивания при помощи технологии Adobe Flash, на языке actionscript 2. Обратите внимание, что flash плеер может воспроизводить видео только одно формата – flv.
Плеер будет состоять из одного кадра. На сцене должны быть:
1) Видео-символ (myVideo). В свойствах нужно указать Video (actionscript controlled).
2) Кнопка или мувиклип, который будет останавливать воспроизведение (кнопка пауза). Instance name - p_btn.
3) Над этой кнопкой нужно разместить клипы – значки воспроизведения и паузы (play_btn и pause_btn).
4) Мувиклип vol, состоящий из двух мувиклипов – полосок, индикатор/регулятор громкости. На первом слое (нижнем) должен быть мувиклип fon, над ним – bar, идентичный по размеру, но другого цвета.
5) Клип progress_bar, похожий на клип vol. На нижнем слое клип fon, на среднем - flv_load, на самом высшем – bar.
После того, как вы сделали оболочку плеера, вам остаётся только добавить в кадр код:
stop(); // останавливаем воспроизведение
// ставим ширину равной нулю (скрываем) индикаторы загрузки и позиции воспроизведения
progress_bar.flv_load._width = 0;
progress_bar.bar._width = 0;
pause_btn._visible = false; // скрываем кнопку пауза
//isPlaying - булева величина, которая показывает, идёт ли сейчас подгрузка видео
isPlaying = false;

link = '1.flv';// ссылка на видео файл для воспроизведения (flv)

// нажатие на кноку play/pause
p_btn.onRelease = function() {
if (!isPlaying) {// если подгрузка вижео ещё не начиналась
_root.nc = new NetConnection(); // экземпляр класса NetConnection
_root.nc.connect(null);
_root.my_ns = new NetStream(_root.nc);// экземляр класса NetStream
setPlayBtn(false); // скрываем кнопку play, показываем кнопку pause
// "прикрепляем" поток видео (класс NetStream) к видео-символу
myVideo.attachVideo(_root.my_ns);
_root.my_ns.play(link);
// при получении данных о длительности видео
_root.my_ns.onMetaData = function(infoObject:Object) {
totalTime = infoObject.duration;//сохраняем в отдельную переменную
};
// при завершении загрузки видео
_root.my_ns.onStatus = function(info) {
if (info.code == "NetStream.Play.Stop") {
isPlaying = false;
setPlayBtn(true);
progress_bar.bar._width = 0;
}
}
isPlaying = true; // значит, что видео начало подгружаться
} else // если видео уже грузится
if (pause_btn._visible) { // и если сейчас плеер не на паузе
// ставим видео на паузу
_root.my_ns.pause(true);
// запоминаем позицию воспроизведения
current = _root.my_ns.time;
// скрываем кнопку pause, показываем кнопку play
setPlayBtn(true);
} else { // если плеер на паузе
// перематываем видео на место, где остановились
current = _root.my_ns.time;
// и продолжаем воспроизведение
_root.my_ns.pause(false);
// скрываем кнопку play, показываем кнопку pause
setPlayBtn(false);
}

}


onEnterFrame = function() {
if (isPlaying) {
setBar();
}
//считаем проценты, меняем ширину полоски - индикатора загрузки видео во flash плеер
current = _root.my_ns.time;
total = _root.my_ns.bytesTotal; // "вес" видео в байтах
loaded = _root.my_ns.bytesLoaded; // количество загрженых байт
percent = (loaded/total); // соотношение полного веса к загруженой части
// в зависимости от загруженой части, меняем длину зелёной полоски - индикатора
progress_bar.flv_load._width = (percent * progress_bar.fon._width);

}
// setBar - функция, которая будет отображать прогресс вопроизведения видео в плеере
// при вызове позиция передаётся как процент (от 0 до 100)
function setBar(percent:Number) {
if (percent == undefined) percent = Math.floor(_root.my_ns.time/totalTime*100);
// меняем ширинц полоски-индикатора
progress_bar.bar._width = (percent/100 * progress_bar.fon._width);
}

// нажатие на полоску - индикатор загрузки
// именно на этот индикатор, чтобы нельзы было перепрыгвать на незагруженные участки
progress_bar.flv_load.onRelease = function() {
// вызов функции scrubbing, которая отвечает за перемотку на нужный моммент времени
scrubbing(Math.floor((progress_bar._xmouse*100)/progress_bar._width));
}

function scrubbing(p) { // функция для перемтоки видео
isEnd = false;
setPlayBtn(false);
_root.my_ns.seek(p*totalTime/100);
_root.my_ns.pause(false);
}

// функция, которая показывает/прячет кнопки play и pause
function setPlayBtn(b) {
play_btn._visible = b;
pause_btn._visible = !b;
}

// создаём обьект класса Sound, который будет охватывать все звуки в фильме
sound = new Sound();
// регулировка громкости
vol.onRelease = function() { // клик по индикатору громкости
vol.bar._width = vol._xmouse;// меняем ширину индикатора
// меняем громость звука
sound.setVolume(vol._xmouse/vol._width * 100);

  • Время новых магазинов.

      В наше время уже ни кого не удивишь понятием интернет магазина. Мы привыкли к тому, что в интернете все дешевле. Это благодаря нашим китайским партнерам. Сейчас многие ведущие сети, как правило, еще имеют свои…

  • Как доставлять наслаждение женщине

    После пpиятной пpедваpительной игpы женщина удобно устpаивается лежа на спине. Если ей нpавится, она может положить голову на подушку. Она pаздвигает ноги. Она может их согнуть, пpиподняв колени, или вытянуть их. Ключом к…

  • Посадим магический сад

    Известно, что первые амулеты как в России, так и в Европе делались из трав  и растений. Они и сегодня считаются самыми сильными,  какую бы цель ни преследовали: охрану здоровья, защиту от порчи или сглаза,…

  • Как правильно покупать одежду в интернет магазине

    В интернете можно купить абсолютно всё. Но иногда возникают вопросы по конкретному товару, и нам требуется консультация. Давайте разберемся, как правильно покупать одежду в интернете, чтобы не допускать ошибок при…

  • Расшифрованный Апокалипсис - Образ зверя

    Образ зверя - это ТВ, видео, аудио, компьютеры, игры и прочие развлечения, где используются образы. Всё это - не что иное, как гос. средства промывания мозгов. Начертание зверя - это сотовый телефон. Он используется для…

  • Настройка общего доступа к файлам и принтерам в Windows 7

    Откройте оснастку Центр управления сетями и общим доступом. Для этого либо залезьте в Панель управления, либо щелкните правой кнопкой мыши по иконке в трее, символизирующей подключение к сети.В открывшемся Центре…

  • Рука женщины

    Женским рукам мы обязательно должны были посвятить особый отдел так как начинающий при изучении нашей науки мог бы легко впасть в заблуждение и некоторые принадлежащие женской руке свойства отнести к известным типам…

  • Подключаем телефон Хiaomi Redmi Note 4Х к телевизору

    Вы решили купить Хiaomi Redmi Note 4Х, а как подключить его к своей домашней электронике не знаете? В этом обзоре мы рассмотрим способы настройки заветной взаимосвязи смартфона и телевизора. На первый взгляд, это простое и…

  • поздравления с 8 мартом (стр. 3)

    51 Пусть невзгоды жизни пролетают мимо, Как ручей весною пусть играет кровь! Я тебе желаю быть всегда любимой И в любые годы чувствовать любовь. 52 Весна творит в природе чудеса - Она зажгла любовь в твоих глазах. Весенний…

  • Линии ладони

    Линии и их поведениеЛинии на ладонях новорожденных такие же как и у взрослых - они пересекаются в разных направлениях бывают глубокими стираются и исчезают углубляются и удлиняются в течении жизни. Они даже полностью…


Комментарии

15 + 86 =