![]() |
|
||||||||||
|
|||||
|
в хелпе есть такой пример прелоадера видео:
Example
The following example creates a progress bar using the Drawing API and the bytesLoaded and bytesTotal properties that displays the loading progress of video1.flv into the video object instance called my_video. A text field called loaded_txt is dynamically created to display information about the loading progress as well.
var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
my_video.attachVideo(stream_ns);
stream_ns.play("video1.flv");
this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22);
this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth());
with (progressBar_mc.bar_mc) {
beginFill(0xFF0000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 0;
}
progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth());
with (progressBar_mc.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);
function checkBytesLoaded(my_ns:NetStream) {
var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100);
loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)";
progressBar_mc.bar_mc._xscale = pctLoaded;
if (pctLoaded>=100) {
clearInterval(loaded_interval);
}
}
Последний раз редактировалось B0Bka; 27.11.2007 в 12:05. |
|
|||||
|
как все же заставить видео сначала скачаться а потом воспроизвестись... даже если оно стримовое, в приведенном примере, видео все равно скачивает какой-то объем и воспроизводит его (не дождавшись конца загрузки).
|
|
|||||
|
Если в потоковом видео, которое ты качаешь есть метаданные, то присвой размеру буфера длину скачиваемого видео.
|
|
|||||
|
alekslitvinenk ага, была такая идея, только не знал как получить длительность до воспроизведения файла, думал пока я получу duration файл уже начнет проигрывать и я не успею выставить значение setBufferTime для потока, спасибо за этот код, попробую
|
|
|||||
|
да, все работает замечательно, спасибо...
з.ы. уже проблема нийти узкий инет канал для проверки загрузки. и simulate download не помогает, флэшплеер кеширует куда-то в себя видео, не в курсе как сбросить кэш у него? |
|
|||||
|
Сбросить кеш у флеша можно либо через сайт адоб, либо с помощью контекстного меню флеша.
А разве нельзя ограничить скорость собственного канала для проверки ? |
|
|||||
|
наверно можно какими-нибудь программами или фаерволами но я не знаю таких (если что-то есть такое подскажи)
з.ы. программно кэш не сбрасывается? (чтобы его сразу при запуске флэшки отчищать) |
|
|||||
|
Неуверен, что кеш автоматически очищаеться, поэтому лучше каждый раз вручную чистить...А почему собственно SimulateDownload не подходит ?
|
|
|||||
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|