LINUX.ORG.RU

[flash] Необходим flv плеер

 


0

0

Здравствуйте.

Необходим flash flv плеер, который умеет следующее:

1. Показывать кастомную картинку с кнопкой Play перед началом видео (должна быть возможность нацепить ролловер на кнопку)

2. Уметь псевдо-стриминг через flv-модуль от nginx

3. Уметь показать кастомные кнопки по окончании видео (аналогично, ролловеры нужны). Кнопки должны быть ссылками на внешние ресурсы либо вызовами api самого плеера (проиграть еще раз и т.п.)

Пока пробовал только Flowplayer (добился всего что описал выше при помощи jquery и оверлеев в div, прячу/показываю нужный div [либо с плеером, либо с кнопками]), но он падает сам и ложит браузер Safari/mac при вызове unload() Safari/win и прочие браузеры - все ок.

Кто-то может что-то порекомендовать? Спасибо.

JWPlayer + плагины
/thread

iSage ★★★★
()

я-бы лучшебы посоветовалбы HTML5 использовать (совмесно с GoogleChromeFrame, для совместимости с IExplorer)

что касается HTML5 — http://diveintohtml5.org/video.html

что касается GoogleChromeFrame — http://www.google.com ;-)

____________________

// p.s. в результате будет работать на всех браузерах, из без лишних «троянов» :-) :-)

________________________________________

// p.p.s. и ВАЖНО — нада не забыть про напоминательную табличку в случае детектирования IExplorer-браузера

(function(window) {
	var document = window.document;
	var XMLHttpRequest = window.XMLHttpRequest;
	
	var addEventListener = function(element, Type, Listener, UseCapture) {
	// потомучто 'Microsoft IE' не поддерживает addEventListener()
		if(element.addEventListener != null) {
			element.addEventListener(Type, Listener, UseCapture);
		} else if(element.attachEvent != null) {
			element.attachEvent('on' + Type, Listener);
		} else {
			throw "addEventListener() not implemented";
		}
	};
	
	var detectMicrosoftIE = function() {
	// детектирование 'Microsoft IE' по характерным несоответствиям стандартам
		
		if( // детектирование версий: '6.0', '7.0', '8.0'
			window.addEventListener == null && // <-- нет важной функции
			window.attachEvent != null // <-- но есть нестандартная альтернатива
		) {
			return true;
		}
		
		// <ЗДЕСЬ> в будущем возможно будет детектирование других версий
		
		return false;
	};
	
	var makeClearBothDiv = function() {
		var clearBothDiv = document.createElement('div');
		clearBothDiv.style.clear = 'both';
		
		return clearBothDiv;
	};
	
	var makeGoogleChromeFrameNotify = function() {
		var install = document.createElement('input');
		install.type = 'button';
		install.value = 'Установть';
		install.style.cssFloat = 'right'; // <-- 'Microsoft IE' не поддерживает это
		install.style.styleFloat = 'right'; // <-- специально для 'Microsoft IE'
		addEventListener(install, 'click', function(Event) {
			window.location.assign('http://www.google.com/chromeframe/eula.html');
		}, false);
		
		var googleChromeFrame = document.createElement('span');
		googleChromeFrame.style.fontWeight = 'bold';
		googleChromeFrame.appendChild(
			document.createTextNode(
				'Chrome Frame'
			)
		);
		
		var learnMore = document.createElement('span');
		learnMore.style.cursor = 'pointer';
		learnMore.style.color = 'rgb(0,0,255)';
		learnMore.appendChild(
			document.createTextNode(
				'Узнать больше'
			)
		);
		addEventListener(learnMore, 'click', function(Event) {
			window.location.assign('http://code.google.com/intl/ru/chrome/chromeframe/');
		}, false);
			
		
		var text = document.createElement('div');
		text.style.padding = '5px';
		text.appendChild(
			document.createTextNode(
				'У Вас не установлен компонент '
			)
		);
		text.appendChild(googleChromeFrame);
		text.appendChild(
			document.createTextNode(
				', необходимый для корректной работы Вашего браузера ('
			)
		);
		text.appendChild(learnMore);
		text.appendChild(
			document.createTextNode(')')
		);
		
		var notify = document.createElement('div');
		notify.style.padding = '3px';
		notify.style.font = '12px "DejaVu Sans", "Sans", sans-serif';
		notify.style.border = '1px rgb(245,245,181) outset';
		notify.style.background = 'rgb(245,245,181)';
		notify.style.color = 'rgb(0,0,0)';
		notify.appendChild(install);
		notify.appendChild(text);
		notify.appendChild(makeClearBothDiv());
		
		return notify;
	};
	
	var showNotify = function(notify) {
		if(document.body.firstChild != null) {
			document.body.insertBefore(notify, document.body.firstChild);
		} else {
			document.body.appendChild(notify);
		}
	};
	
	var main = function(Event) {
		if(detectMicrosoftIE()) {
			var notify = makeGoogleChromeFrameNotify();
			
			showNotify(notify);
		}
	};
	
	addEventListener(window, 'load', main, false);
})(window);
mkfifo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.