PDA

Просмотр полной версии : скрипт баннера с потоковым видео


falencer
25.01.2013, 12:03
Добрый день! У меня проблема и вопрос. Я работаю видеодизайнером в Видео интернешл, и обычно работаем с роликами, но недавно начали размещать банера на мейле, обычные баннера научился анимировать, а тут появился банер с потоковым видео без флеша, только видео. И вместе с ним мейл просит файлик со скриптом в котором прописаны функции, они прислали пример банера со всеми исходниками, но он с флешом и с кнопкой которая запускает видео по инициативе пользователя, а нужно наоборот видео должно быть с автостартом и без звука.
погуглив, я понял есть 2 команды это autostart = true(false) и аналогично mute, только куда их "запихнуть" я не знаю, вот код скрипта с эталонным кодом....Что необходимо изменить в скрипте? Кто нибудь может помочь?

var firstPress = true;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var nStream:NetStream = new NetStream(nc);
videoObj.attachVideo(nStream);
var snd:Sound = new Sound();
this.createEmptyMovieClip("snd_mc", getNextHighestDepth());
snd_mc.attachAudio(nStream);
nStream.setBufferTime(3);
ControlPanelVisible();
preloader._visible = false;

mc._play.onPress = pressPlay;
mc._pause.onPress = pressPause;
mc._sound_on.onPress = pressSoundOn;
mc._sound_off.onPress = pressSoundOff;
mc_link.onRelease = linkUrl;
this.onEnterFrame = enterFrame;
nStream.onStatus = statusVideo;

function statusVideo(status:Object){

if( status.code == "NetStream.Play.Stop" )
nStream.play(_root.video1);

}

function enterFrame(){

if ( nStream.bytesLoaded > 0 ){
preloader._visible = false;
this.onEnterFrame = null;
}

}
function linkUrl(){

getURL(_root.link1, "_blank");

}
function pressPlay(){

if (firstPress){
preloader._visible = true;
nStream.play(_root.video1);
firstPress = false;
}
nStream.pause(false);
mc._play._visible = false;
mc._pause._visible = true;

}
function pressPause(){

nStream.pause(true);
mc._pause._visible = false;
mc._play._visible = true;

}
function pressSoundOn(){

snd.setVolume(0);
mc._sound_on._visible = false;
mc._sound_off._visible = true;

}
function pressSoundOff(){

snd.setVolume(100);
mc._sound_off._visible = false;
mc._sound_on._visible = true;

}
function ControlPanelVisible(){

mc._play._visible = true;
mc._pause._visible = false;
mc._sound_on._visible = true;
mc._sound_off._visible = false;

}

Котяра
25.01.2013, 14:34
но он с флешом и с кнопкой которая запускает видео по инициативе пользователя, а нужно наоборот видео должно быть с автостартом и без звука.
Эти требования не зря.
Банеры с автозапуском потокового видео просто не пропустят модераторы.

falencer
25.01.2013, 14:41
цитаты из требований мейла на оф сайте и собственно ссылка на страницу http://corp.mail.ru/adv/tech.htm#a4
"Требования к видео-баннерам с автостартом
1.Требования по формату, размеру подгружаемого видео и методу подключения такие же как у обычного видео-баннеров без автостарта.


2.Видео начинается автостартом без звука, звук (если есть) включается по инициативе пользователя.


3.Пользователь должен иметь возможность остановить/возобновить показ видео, а также включить/выключить звук.


4.Видео с автостартом не может быть размещено в фулскрине и баннере-перетяжке"
все ещё жду помощи.

dark256
25.01.2013, 16:26
Так а в чем вопрос-то?
Как юзеру запустить видео никуда не кликая?

function pressPlay(){

if (firstPress){
preloader._visible = true;
nStream.play(_root.video1);
firstPress = false;
}

pressPlay()

Вот он и запустится сразу... Вызов функции пропишите прямо в коде а не на клик вешайте...

falencer
25.01.2013, 16:36
function pressPlay(){

if (firstPress){
preloader._visible = true;
nStream.play(_root.video1);
firstPress = false;
}

pressPlay()

Вот он и запустится сразу... Вызов функции пропишите прямо в коде а не на клик вешайте...
Вот это функцию в какое место? место это же функции польностью?
Пожалуйста ткните пальцем куда, я не шарю в программировании,
юзер и недолжен нажимать, а как только произошла загрузка страницы, видео автостартом запускается и по умолчанию звук выключен

mooncar
25.01.2013, 16:40
falencer, на форуме не пренебрегают грамматикой: предложения начинаются с больших букв.

dark256
26.01.2013, 12:29
вот это функцию в какое место?

ТУда же, где и весь код примера.
После него. В конце.

falencer
29.01.2013, 15:32
вот это функцию в какое место?

ТУда же, где и весь код примера.
После него. В конце.

Примного Благодарен!!!!Все работает, все приняли, огромное спасибо.
п.с. единственное добавил в конец pressSoundOn() что б звук был выключен

Civil
21.11.2014, 17:37
Здравствуйте! Подскажите как включить автостарт видео в этом плеере.

stop(); // останавливаем воспроизведение

// ставим ширину равной нулю (скрываем) индикаторы загрузки и позиции воспроизведения
progress_bar.flv_load._width = 0;
progress_bar.bar._width = 0;
pause_btn._visible = false; // скрываем кнопку пауза
//isPlaying - булева величина, которая показывает, идёт ли сейчас подгрузка видео
isPlaying = false;

link = ("http://www.###.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);
}