Войти
Урок создания flash видео плеера
18.05.2010 | Кат. Полезные заметки | 1557
Рассмотрим пример создания флеш проигрывателя для видео файлов, который можно установить на свой сайт, позволив посетителям сайта смотреть видео на сайте без скачивания при помощи технологии 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);

  • Мастурбация здоровая и нездоровая

    Моя клиентка, 33-летняя Лида, кипела от гнева : " Мне самой секса от мужа не хватает, хожу неудовлетворенная, а он при этом онанизмом занимается ! Уже не раз его за этим занятием заставала, он очень стесняется, но говорит: " Я…

  • ПРОМЫВКА МОЗГОВ
    ПРОМЫВКА МОЗГОВ

    Самые изощренные уловки, рекламные трюки  и «психологические бомбы», призванные удержать  наше внимание, используют сегодня телевизионные каналы  и передачи, вынужденные вести интенсивную борьбу  «за своего…

  • Детские ссоры

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

  • Маленькое королевство Бена и Холли / Ben & Holly's Little Kingdom

      Год выпуска:2009Страна: СШАЖанр:АнимацияПродолжительность:11 мин.-серияПеревод: Профессиональный (полное дублирование)Режиссер:Neville Astley,Mark BakerГде-то там за колючими кустами ежевики есть маленькое королевство…

  • Украинский рушник - история применения

    Рушник - вышитые или тканые полотенца 20-50 см в ширину и 1-4 м в длину, используется, как правило, для декоративной или торжественного цели. В средневековые времена ткань использовалась в качестве основной одежды, или,…

  • Ирина Билык
    Ирина Билык

    Певица, поэт, композитор, личность, чье имя является символом вечной украинской музыки. Билык Ирина Николаевна родилась 6 апреля в городе Киеве. С четырех лет Ирина начала петь. С пяти лет занималась танцами и…

  • Если у вас динамический IP

    Этот сервис позволяет обратиться к вашему серверу не по IP адресу, а по его имени, которое (как я надеюсь вам известно) преобразуется в IP адрес через обращение к DNS серверам. Таким образом DNS имя остается постоянным, а IP…

  • 24 варианта использования .htaccess

     Файл конфигурации .htaccess может быть очень мощным инструментом разработчика при его правильном использовании. Его можно найти в корневой папке сервера, редактируется обычным текстовым редактором. В этой статье вы…

  • «Однорукий бандит» - легенда азартных игр

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


Комментарии

44 + 90 =