Можно-ли осуществить подгрузку avi и других видео форматов (кроме flv) из внешнего файла (через xml, например)?
Если можно приведите примеры, или ткните носом в статью.
Организовать подгрузку файлов можно, но проигрывать их у вас не получится. Для того, чтобы видео проигрывалось внутри Flash оно должно быть в формате .flv
Однако готов поспорить. ибо Качал из контакте видеозаписи и они были в формате .mp4
Что говорит о том, что, в принципе, есть возможность организовать проигрываение видио не только в формате flv. Остаётся только открытым вопрос. как это делается. А вот avi - это уже точно нет.
Если честно, то первый раз об этом слышу. Как вариант могу предположить, что расширение файла было .mp4, но сам файл был закодирован в формате .flv, хотя, конечно, это только предположение и, возможно, и правда есть способ проигрывать .mp4 файлы.
Врать не буду, сам не проверял, просто обратил внимание при скачивании, что файл mp4.
Есть вопрос по видео плееру в принципе. Написал его, значит, и возникла проблема, fullscreen не работает в браузерах. Писал двумя способами, ни один из:
Раз уж пошла такая пьянка...
Написал видео плеер на AS2, но пришлось переписать под AS3.
Проблема возникла с перемоткой и громкостью.
Если для реазизации их в AS2 нам хватало прописать
my_mc.onPress = function() {
this.onMouseMove = function () {
//тут перетаскивание, регулировка, всё, что угодно
}
}
, то на AS3 так просто вс не проходит.
Ни как не могу понять, как реализовать это с этими постоянными addEventListener
Если не сложно, можешь написать пример кода регулировки громмкости объекта FLVPlayback на языке Если имя бегунка допустим будет volseek.
Я с третьим акшнскриптом стал работ совсем недавно и не могу в нём разобраться, так как слишком привык ко второму,
уже 6 лет на нём работаю и так сразу моментально переучиться что-то не выходит. буду чень благодарен.
Если я правильно вас понял, то основная проблема, которая у вас возникла — это проблема с отслеживанием MouseMove при нажатие на поле перемотки. В AS3 это реализуется через добавление слушателей MouseMove при нажатии мышки и удалении их при отпускании мышки, например так:
public function void()
{
// If object already on stage
if (this.stage)
{
this.onAddedToStage();
// If object not on stage yet.
}else
{
this.addEventListener(Event.ADDED_TO_STAGE, this.onAddedToStage);
}
}
/**
* Listener of ADDED_TO_STAGE event.
*
* @param event the base event object.
*/
private function onAddedToStage(event:Event = null):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, this.onAddedToStage);
}
/**
* Функции для работы со слушателями события нажатия мышки на объекте.
*/
/**
* Добавление слушателя нажатия мышки на объекте.
*/
private function addOnMouseDown():void
{
this.addEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
}
/**
* Удаление слушателя нажатия мышки на объекте.
*/
private function removeOnMouseDown():void
{
this.removeEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown);
}
/**
* Слушатель события нажатия мышки на объекте.
*
* @param event событие мышки.
*/
private function onMouseDown(event:MouseEvent):void
{
this.addOnMouseMove();
}
/**
* Функции для работы со слушателем события поднятия мышки.
*/
/**
* Добавление слушателя поднятия мышки.
*/
private function addOnStageMouseUp():void
{
this.stage.addEventListener(MouseEvent.MOUSE_UP, this.onStageMouseUp);
}
/**
* Удаление слушателя поднятия мышки.
*/
private function removeOnStageMouseUp():void
{
this.stage.removeEventListener(MouseEvent.MOUSE_UP, this.onStageMouseUp);
}
/**
* Слушатель события поднятия мышки.
*
* @param event событие мышки.
*/
private function onStageMouseUp(event:MouseEvent):void
{
this.removeOnMouseMove();
}
/**
* Функции для работы с событием движения мышки.
*/
/**
* Добавление слушателя события движения мышки.
*/
private function addOnMouseMove():void
{
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove);
}
/**
* Удаление слушателя события движения мышки.
*/
private function removeOnMouseMove():void
{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove);
}
/**
* Слушатель события движения мышки.
*
* @param event событие мышки.
*/
private function onMouseMove(event:MouseEvent):void
{
}
посмотрел ваш пример. Благодарю! слегка переработал, получилось вот так
function onMove( pEvent:MouseEvent):void {
var z:Number = scinbar.volbar.mouseX*2;
if (z<1) {
z=0;
}
if (z>99) {
z=100;
}
z=z/100;
playzone.volume = z;
scinbar.volbar.volseek.x = z*50;
}
function onUp( pEvent:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
}
function onDown( pEvent:MouseEvent):void {
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
}
scinbar.volbar.volseek.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
с громкостью разобрался.
попытался тем же путём задать слушателей и функции на перемотку видео и тут столкнулся с непонятной проблемой. первое. я реализовал передвижение ползунка при воспроизведении через setInterval а в нём через считывание текущего времени воспроизведения.
в связи с этим. когда я начинаю перетаскивать ползунок во время произведения
function onMoveSeek( pEvent:MouseEvent):void {
var persent:Number = scinbar.bars.mouseX*100/350;
var per:Number = playzone.metadata.duration/100;
if (persent>99) {
persent = 100;
}
if (persent<1) {
persent = 0;
}
var seekvid:Number = persent*per;
seekvid = Math.round(seekvid);
playzone.seek(seekvid);
scinbar.playseek.x=(persent*3.5)+45;
}
у меня не происходит перемотка, а ползунок постоянно вырывается и возвращается на текущую точку воспроизведения.
а если я сначала передвину, а потом включу воспроизведение, но оно почему-то не начинается.
как быть в этой ситуации?
Вроде решил проблему, предварительно ставить на паузуи вновь запускать иже с новый значением .seek();
Перемотка в таком случае работает прекрасно, но нет визуального перетаскивания ползунка, так как setInterval продолжает работать. Есть ли возможность как-то програмно его приостановить и потом по событию MOUSE_UP вновь запустить?
И ещё вопрос. Если у меня создана функция
function handleClick( pEvent:MouseEvent
):void {
//тут идёт проверка, на какую кнопку мы нажали мышкой(проигрывать. пауза и т.д.) через if (pEvent.target==имя кнопки)
}
Есть ли возможность запустить эту функцию, не нажимая. например на плэй, или придётся весь её текст переписывать заново?
Заранее благодарю.
Организовать подгрузку файлов можно, но проигрывать их у вас не получится. Для того, чтобы видео проигрывалось внутри Flash оно должно быть в формате .flv
Однако готов поспорить. ибо Качал из контакте видеозаписи и они были в формате .mp4
Что говорит о том, что, в принципе, есть возможность организовать проигрываение видио не только в формате flv. Остаётся только открытым вопрос. как это делается. А вот avi - это уже точно нет.
Если честно, то первый раз об этом слышу. Как вариант могу предположить, что расширение файла было .mp4, но сам файл был закодирован в формате .flv, хотя, конечно, это только предположение и, возможно, и правда есть способ проигрывать .mp4 файлы.
Врать не буду, сам не проверял, просто обратил внимание при скачивании, что файл mp4.
Есть вопрос по видео плееру в принципе. Написал его, значит, и возникла проблема, fullscreen не работает в браузерах. Писал двумя способами, ни один из:
fulls.onPress = function() { fscommand("fullscreen", true); };иfulls.onPress = function() { Stage.displayState = "fullscreen"; };не работает.Как это прописать? Скинами пользовался стандартными, на них FullScreenButton Тоже не работает в браузерах.
Для работы FullScreen режима необходимо в браузере корректно прописать параметр allowFullScreen.
всё, понял. спасибо!) полностью работает!))
в браузере?! эм. Я в сметении. Может в коде страницы? Так как готовые то плееры, типа Вконтакте, рутуб, ютуб и так далее открываются.
Если не сложно, не мог бы ты привести пример кода. А точнее, куда нужно вписывать этот параметр?
Раз уж пошла такая пьянка...
Написал видео плеер на AS2, но пришлось переписать под AS3.
Проблема возникла с перемоткой и громкостью.
Если для реазизации их в AS2 нам хватало прописать
my_mc.onPress = function() { this.onMouseMove = function () { //тут перетаскивание, регулировка, всё, что угодно } }, то на AS3 так просто вс не проходит.Ни как не могу понять, как реализовать это с этими постоянными addEventListener
Если не сложно, можешь написать пример кода регулировки громмкости объекта FLVPlayback на языке Если имя бегунка допустим будет volseek.
Я с третьим акшнскриптом стал работ совсем недавно и не могу в нём разобраться, так как слишком привык ко второму,
уже 6 лет на нём работаю и так сразу моментально переучиться что-то не выходит. буду чень благодарен.
Если я правильно вас понял, то основная проблема, которая у вас возникла — это проблема с отслеживанием MouseMove при нажатие на поле перемотки. В AS3 это реализуется через добавление слушателей MouseMove при нажатии мышки и удалении их при отпускании мышки, например так:
public function void() { // If object already on stage if (this.stage) { this.onAddedToStage(); // If object not on stage yet. }else { this.addEventListener(Event.ADDED_TO_STAGE, this.onAddedToStage); } } /** * Listener of ADDED_TO_STAGE event. * * @param event the base event object. */ private function onAddedToStage(event:Event = null):void { this.removeEventListener(Event.ADDED_TO_STAGE, this.onAddedToStage); } /** * Функции для работы со слушателями события нажатия мышки на объекте. */ /** * Добавление слушателя нажатия мышки на объекте. */ private function addOnMouseDown():void { this.addEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown); } /** * Удаление слушателя нажатия мышки на объекте. */ private function removeOnMouseDown():void { this.removeEventListener(MouseEvent.MOUSE_DOWN, this.onMouseDown); } /** * Слушатель события нажатия мышки на объекте. * * @param event событие мышки. */ private function onMouseDown(event:MouseEvent):void { this.addOnMouseMove(); } /** * Функции для работы со слушателем события поднятия мышки. */ /** * Добавление слушателя поднятия мышки. */ private function addOnStageMouseUp():void { this.stage.addEventListener(MouseEvent.MOUSE_UP, this.onStageMouseUp); } /** * Удаление слушателя поднятия мышки. */ private function removeOnStageMouseUp():void { this.stage.removeEventListener(MouseEvent.MOUSE_UP, this.onStageMouseUp); } /** * Слушатель события поднятия мышки. * * @param event событие мышки. */ private function onStageMouseUp(event:MouseEvent):void { this.removeOnMouseMove(); } /** * Функции для работы с событием движения мышки. */ /** * Добавление слушателя события движения мышки. */ private function addOnMouseMove():void { this.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove); } /** * Удаление слушателя события движения мышки. */ private function removeOnMouseMove():void { this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove); } /** * Слушатель события движения мышки. * * @param event событие мышки. */ private function onMouseMove(event:MouseEvent):void { }посмотрел ваш пример. Благодарю! слегка переработал, получилось вот так
function onMove( pEvent:MouseEvent):void { var z:Number = scinbar.volbar.mouseX*2; if (z<1) { z=0; } if (z>99) { z=100; } z=z/100; playzone.volume = z; scinbar.volbar.volseek.x = z*50; } function onUp( pEvent:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove); } function onDown( pEvent:MouseEvent):void { stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove); } scinbar.volbar.volseek.addEventListener(MouseEvent.MOUSE_DOWN,onDown); stage.addEventListener(MouseEvent.MOUSE_UP,onUp);с громкостью разобрался.
попытался тем же путём задать слушателей и функции на перемотку видео и тут столкнулся с непонятной проблемой. первое. я реализовал передвижение ползунка при воспроизведении через setInterval а в нём через считывание текущего времени воспроизведения.
в связи с этим. когда я начинаю перетаскивать ползунок во время произведения
function onMoveSeek( pEvent:MouseEvent):void { var persent:Number = scinbar.bars.mouseX*100/350; var per:Number = playzone.metadata.duration/100; if (persent>99) { persent = 100; } if (persent<1) { persent = 0; } var seekvid:Number = persent*per; seekvid = Math.round(seekvid); playzone.seek(seekvid); scinbar.playseek.x=(persent*3.5)+45; }у меня не происходит перемотка, а ползунок постоянно вырывается и возвращается на текущую точку воспроизведения.а если я сначала передвину, а потом включу воспроизведение, но оно почему-то не начинается.
как быть в этой ситуации?
Вроде решил проблему, предварительно ставить на паузуи вновь запускать иже с новый значением .seek();
Перемотка в таком случае работает прекрасно, но нет визуального перетаскивания ползунка, так как setInterval продолжает работать. Есть ли возможность как-то програмно его приостановить и потом по событию MOUSE_UP вновь запустить?
И ещё вопрос. Если у меня создана функция
function handleClick( pEvent:MouseEvent ):void { //тут идёт проверка, на какую кнопку мы нажали мышкой(проигрывать. пауза и т.д.) через if (pEvent.target==имя кнопки) }Есть ли возможность запустить эту функцию, не нажимая. например на плэй, или придётся весь её текст переписывать заново?
Заранее благодарю.