Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.07.2006, 14:32
slavijan вне форума Посмотреть профиль Отправить личное сообщение для slavijan Найти все сообщения от slavijan
  № 1  
Ответить с цитированием
slavijan
[+1.3 06.07.06]

Регистрация: Apr 2006
Сообщений: 74
По умолчанию Проигрывание FLV

Всем привет, есть у меня флэшка (с использованием MediaPlayback Component) которая проигрывает FLV файл. Дак вот если не указывать длительность этого FLV, то перематывать ролик низя. Но мне необходимо уметь его перематывать (
Соответственно вопрос: Можно ли как нибудь узнать длительность FLV файла и с помощью ActionScript указать компоненте? Или же надо во флэшку передавать еще и длительность ( (Чего не желательно).
__________________
http://nskauto.com - Сайт о Японских Авто

Старый 24.07.2006, 14:44
olegn вне форума Посмотреть профиль Отправить личное сообщение для olegn Найти все сообщения от olegn
  № 2  
Ответить с цитированием
olegn
 
Аватар для olegn

Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
смотри в Help свойство FLVplayback.totalTime
__________________
No war, make Flash.

Старый 24.07.2006, 14:49
slavijan вне форума Посмотреть профиль Отправить личное сообщение для slavijan Найти все сообщения от slavijan
  № 3  
Ответить с цитированием
slavijan
[+1.3 06.07.06]

Регистрация: Apr 2006
Сообщений: 74
2 olegn, этим свойством я задам длительность своего ролика. Это понятно. А вот как узнать эту длительность, если у тебя есть просто путь до файла ), если это конечно возможно ) ....... Просто ролики будут добавляться с помощью Админки на ПХП и не хотелось бы в админку засовывать еще и добавление длительности ролика (хотелось бы все автоматом чтобы определялось).
__________________
http://nskauto.com - Сайт о Японских Авто

Старый 24.07.2006, 15:17
olegn вне форума Посмотреть профиль Отправить личное сообщение для olegn Найти все сообщения от olegn
  № 4  
Ответить с цитированием
olegn
 
Аватар для olegn

Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
По умолчанию Total Time

Flash не сможет определить duration из внешнего файла на сервере (если ты не используешь медиа-сервер). Поэтому чтобы Flash узнал duration, он должен сначала загрузить в себя FLV. Я предлагал использовать определение totalTime ДО начала его проигрывания, но ПОСЛЕ окончательной загрузки. Например так:
Код:
import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.ready = function(eventObject:Object):Void {
    trace("Total play time for this video is: " + my_FLVPlybk.totalTime);
};
my_FLVPlybk.addEventListener("ready", listenerObject);
my_FLVPlybk.contentPath = "http://www.url.com";
__________________
No war, make Flash.

Старый 24.07.2006, 16:25
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не обязательно дожидаться окончания загрузки, тем более что не всегда это и приемлимо..
Код:
pb.addEventListener("metadataReceived",onMeta);
function onMeta(o){trace("duration="+pb.metadata.duration }

Старый 24.07.2006, 16:29
slavijan вне форума Посмотреть профиль Отправить личное сообщение для slavijan Найти все сообщения от slavijan
  № 6  
Ответить с цитированием
slavijan
[+1.3 06.07.06]

Регистрация: Apr 2006
Сообщений: 74
Делаю так:
Код:
import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.ready = function(eventObject:Object):Void {
    trace("Total play time for this video is: " + myFLV.totalTime);
};
myFLV.addEventListener("ready", listenerObject);
myFLV.contentPath = "C:\www\mto\video\video.flv";
Но все равно перемотка не работает ( Даже трэйс не показывает ничего В чем дело ? Хелп ми плизз ...
Стоит заметить, что у меня Macromedia Flash MX Professional 2004.
__________________
http://nskauto.com - Сайт о Японских Авто


Последний раз редактировалось slavijan; 24.07.2006 в 16:33.
Старый 24.07.2006, 16:40
olegn вне форума Посмотреть профиль Отправить личное сообщение для olegn Найти все сообщения от olegn
  № 7  
Ответить с цитированием
olegn
 
Аватар для olegn

Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
Да-с. Это я невнимательно прочитал твое первое сообщение... Sorry. Я тебе пишу про FLV Component, а у тебя другой, MediaPlayBack, он эти события не поддерживает... Свойство totalTime там тоже есть, но событие нужно другое отлавливать... progress, наверное.
__________________
No war, make Flash.

Старый 24.07.2006, 16:50
slavijan вне форума Посмотреть профиль Отправить личное сообщение для slavijan Найти все сообщения от slavijan
  № 8  
Ответить с цитированием
slavijan
[+1.3 06.07.06]

Регистрация: Apr 2006
Сообщений: 74
поменял ready на progress, теперь трэйс выводит:
Код:
Total play time for this video is: undefined
(
__________________
http://nskauto.com - Сайт о Японских Авто

Старый 24.07.2006, 17:31
olegn вне форума Посмотреть профиль Отправить личное сообщение для olegn Найти все сообщения от olegn
  № 9  
Ответить с цитированием
olegn
 
Аватар для olegn

Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
Уже хорошо. Теперь давай корректнее сделай обработчик progress. В отличие от более удобного в этом случае предыдущего варианта onReady (который вызывался, когда фильм был ТОЧНО полностью загружен), этот progress, наоборот, вызывается с начала загрузки и до окончания загрузки медиа в MediaPlayBack. И в отличие от FLVPlayBack, MediaPlayBack никак не инициализирует totalTime в процессе загрузки вплоть до ее завершения.
Так что отлавливай процесс загрузки (пока он не закончится, значение totalTime будет undefined) и снимай значение, когда, как обычно, bytelTotal==bytesLoaded.
__________________
No war, make Flash.

Старый 24.07.2006, 18:49
slavijan вне форума Посмотреть профиль Отправить личное сообщение для slavijan Найти все сообщения от slavijan
  № 10  
Ответить с цитированием
slavijan
[+1.3 06.07.06]

Регистрация: Apr 2006
Сообщений: 74
Вот переписал ту этот код, но в нем всяко есть много косяков:
Код:
var listenerObject:Object = new Object();
listenerObject.progress = function(eventObject:Object):Void {
    _root.onEnterFrame = function(){
		if(myFLV.bytesLoaded !== myFLV.bytesTotal){
			//trace("Total play time for this video is: " + myFLV.totalTime);
			trace(myFLV.bytesLoaded + "-" + myFLV.bytesTotal);
		}
		else if(myFLV.bytesLoaded == myFLV.bytesTotal){
			trace(myTime = myFLV.totalTime);
		}
	}
};
myFLV.contentPath = "C:\www\mto\video\video.flv";
myFLV.addEventListener("progress", listenerObject);
myFLV.totalTime = myTime;
Не пойму в чем дело (
__________________
http://nskauto.com - Сайт о Японских Авто

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.