Показать сообщение отдельно
Старый 08.12.2009, 01:42
Killer_13 вне форума Посмотреть профиль Отправить личное сообщение для Killer_13 Найти все сообщения от Killer_13
  № 1  
Ответить с цитированием
Killer_13
 
Аватар для Killer_13

Регистрация: Jan 2007
Сообщений: 302
Cool Виснет загруженое видео - помогите разобраться..

Вот уже много времени сушу голову, почему у меня виснет видео при загрузке, иногда проигрывается 5, иногда 10, иногд вообще на первом кадре останавливается, пробовал разными способами: Кодировал разными кодеками, пробовал на разных ПС и на разных Маках:

Вот из справки Адобе!

Цитата:
Загрузка видеофайлов
Загрузка видеофайлов с помощью классов NetStream и NetConnection выполняется в несколько этапов.
1 Создайте новый объект NetConnection. Если необходимо подключиться к локальному видеофайлу или
файлу, не использующему сервер, такой как Adobe Flash Media Server 2, передайте значение null методу
connect() для воспроизведения видеофайлов в HTTP-адреса или локального диска. При подключении к
серверу установите для этого параметра URI-адрес приложения, в котором содержится видеофайл на
сервере.
var nc:NetConnection = new NetConnection();
nc.connect(null);
2 Создайте объект NetStream, который принимает в качестве параметра объект NetConnection, и укажите
видеофайл для загрузки. Следующий код подключает объект NetStream к указанному экземпляру
NetConnection и загружает видеофайл с именем video.mp4 в тот же каталог, где находится SWF-файл.

var ns:NetStream = new NetStream(nc);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.play("video.mp4");
function asyncErrorHandler(event:AsyncErrorEvent):void
{
// ignore error
}
3 Создайте новый объект Video и присоедините к нему созданный ранее объект NetStream с помощью метода
attachNetStream() класса Video. Затем этот объект Video можно добавить в список отображения с
помощью метода addChild(), как показано в следующем примере.
var vid:Video = new Video();
vid.attachNetStream(ns);
addChild(vid);
По мере выполнения этого кода проигрыватель
вот мой код
Код AS3:
package {
 
	import flash.net.NetStream;
	import flash.net.NetConnection;
	import flash.events.*;
	import flash.display.*;
	import flash.media.Video;
 
	public class VideoLoader extends Sprite {
 
		public var vid:Video = new Video();
 
		public function VideoLoader (){
 
			var nc:NetConnection = new NetConnection ();
				nc.connect(null);
 
			var ns:NetStream = new NetStream(nc);
			ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
			ns.play("girl.flv");
 
			function asyncErrorHandler(event:AsyncErrorEvent):void{
			// ignore error
			}
 
			vid.attachNetStream(ns);
			vid.x = 70;
			vid.y = 120;
			addChild(vid);
		}
 
	}
 
}
в главном main.as
Код AS3:
package {
 
	import flash.display.*;
	import flash.events.*;
	import VideoLoader;
 
 
	public class main extends Sprite{
 
		public var v:VideoLoader = new VideoLoader;
 
		public function main(){
 
			this.addChild(cVideo);
			cVideo.addChild(v.vid);
		}
 
		}
	}
}
Сборник рецептов Лотта, Шалла, Питерса параграф 16.1 гласит делать вот так.

Код AS3:
package {
 
	import flash.net.*;
	import flash.events.*;
	import flash.display.*;
	import flash.media.Video;
 
	public class VideoLoader extends Sprite {
 
		public var vid:Video;
 
		public function VideoLoader (){
 
			var nc:NetConnection = new NetConnection ();
				nc.connect(null);
 
			var ns:NetStream = new NetStream(nc);
		    var video:Video = new Video();
			addChild(vid);
			vid.attachNetStream(ns);
			ns.play("Soviet.flv");
			trace("vid");
			vid.x = 80;
			vid.y = 20;
			vid = video;
 
		}
 
	}
 
}
Подскажите, кто сталкивался с подобным!

Что не так..
Спасибо большое!!!