![]() |
|
||||||||||
|
|||||
|
[+1.3 06.07.06]
Регистрация: Apr 2006
Сообщений: 74
|
Всем привет, есть у меня флэшка (с использованием MediaPlayback Component) которая проигрывает FLV файл. Дак вот если не указывать длительность этого FLV, то перематывать ролик низя. Но мне необходимо уметь его перематывать
( Соответственно вопрос: Можно ли как нибудь узнать длительность FLV файла и с помощью ActionScript указать компоненте? Или же надо во флэшку передавать еще и длительность ( (Чего не желательно).
__________________
http://nskauto.com - Сайт о Японских Авто |
|
|||||
|
Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
|
смотри в Help свойство FLVplayback.totalTime
__________________
No war, make Flash. |
|
|||||
|
[+1.3 06.07.06]
Регистрация: Apr 2006
Сообщений: 74
|
2 olegn, этим свойством я задам длительность своего ролика. Это понятно. А вот как узнать эту длительность, если у тебя есть просто путь до файла
), если это конечно возможно ) ....... Просто ролики будут добавляться с помощью Админки на ПХП и не хотелось бы в админку засовывать еще и добавление длительности ролика (хотелось бы все автоматом чтобы определялось).
__________________
http://nskauto.com - Сайт о Японских Авто |
|
|||||
|
Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
|
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. |
|
|||||
|
не обязательно дожидаться окончания загрузки, тем более что не всегда это и приемлимо..
|
|
|||||
|
[+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. |
|
|||||
|
Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
|
Да-с. Это я невнимательно прочитал твое первое сообщение... Sorry. Я тебе пишу про FLV Component, а у тебя другой, MediaPlayBack, он эти события не поддерживает... Свойство totalTime там тоже есть, но событие нужно другое отлавливать... progress, наверное.
__________________
No war, make Flash. |
|
|||||
|
[+1.3 06.07.06]
Регистрация: Apr 2006
Сообщений: 74
|
поменял ready на progress, теперь трэйс выводит:
(
__________________
http://nskauto.com - Сайт о Японских Авто |
|
|||||
|
Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
|
Уже хорошо. Теперь давай корректнее сделай обработчик progress. В отличие от более удобного в этом случае предыдущего варианта onReady (который вызывался, когда фильм был ТОЧНО полностью загружен), этот progress, наоборот, вызывается с начала загрузки и до окончания загрузки медиа в MediaPlayBack. И в отличие от FLVPlayBack, MediaPlayBack никак не инициализирует totalTime в процессе загрузки вплоть до ее завершения.
Так что отлавливай процесс загрузки (пока он не закончится, значение totalTime будет undefined) и снимай значение, когда, как обычно, bytelTotal==bytesLoaded.
__________________
No war, make Flash. |
|
|||||
|
[+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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|