Azo
20.09.2011, 13:20
из справки на сайте Вконтакте:
Загрузка видеозаписей
Загрузка видеозаписи на сервер ВКонтакте от имени пользователи осуществляется приложением в 2 этапа:
1. С помощью метода video.save приложение узнает http-адрес для загрузки видеозаписи, а также - данные видеозаписи, которая будет загружена. Метод video.save должен быть вызван один раз для каждой загружаемой видеозаписи.
2. Приложение формирует POST-запрос на полученный адрес.
Поле video_file должно содержать видеофайл.
В ответ приложение получает размер загруженного файла либо сообщение об ошибке в формате JSON:
{"size":1234}
или
{"error":описание ошибки}
Видеозапись загружена.
После загрузки видеозапись еще проходит обработку сервером, поэтому в списке видеозаписей может появиться спустя некоторое время.
Есть у меня видео полученное через URLLoader ... e.target.data - это видео...
Пытался загрузить по аналогии с картинкой через MultipartURLLoader.. ОШИБКУ выдает..
Пытался через urlloader загрузить на сервер вк - тоже ошибку выдает {неверный файл}
private function UploadVideo(e:Event):void {
var video:ByteArray = new ByteArray();
video.writeObject(e.target.data);
//var urlvariables:URLVariables = new URLVariables();
//urlvariables.video_file = video;
//var urlrequest:URLRequest = new URLRequest();
//urlrequest.method = URLRequestMethod.POST;
//urlrequest.data = urlvariables;
//urlrequest.url = UploadUrl;
//
//var urlloader:URLLoader = new URLLoader();
//urlloader.load(urlrequest);
//urlloader.addEventListener(ProgressEvent.PROGRESS, LoadProgress);
//urlloader.addEventListener(Event.COMPLETE, UploadedVideo);
//
var mll:MultipartURLLoader = new MultipartURLLoader();
mll.addFile(video, "video_file.flv", "video_file");
mll.load(UploadUrl);
mll.addEventListener(ProgressEvent.PROGRESS, function(e:ProgressEvent):void {
trace("закачиваем "+uint(e.bytesLoaded/e.bytesTotal*100) );
});
mll.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void {
trace("ошибка MultipartURLLoader " + e);
});
mll.addEventListener(Event.COMPLETE, function(e:Event):void{
e.currentTarget.removeEventListener(e.type, arguments.callee);
var obj:Object = JSON.decode(e.currentTarget.loader.data);
trace(e.currentTarget.loader.data);
});
}
Загрузка видеозаписей
Загрузка видеозаписи на сервер ВКонтакте от имени пользователи осуществляется приложением в 2 этапа:
1. С помощью метода video.save приложение узнает http-адрес для загрузки видеозаписи, а также - данные видеозаписи, которая будет загружена. Метод video.save должен быть вызван один раз для каждой загружаемой видеозаписи.
2. Приложение формирует POST-запрос на полученный адрес.
Поле video_file должно содержать видеофайл.
В ответ приложение получает размер загруженного файла либо сообщение об ошибке в формате JSON:
{"size":1234}
или
{"error":описание ошибки}
Видеозапись загружена.
После загрузки видеозапись еще проходит обработку сервером, поэтому в списке видеозаписей может появиться спустя некоторое время.
Есть у меня видео полученное через URLLoader ... e.target.data - это видео...
Пытался загрузить по аналогии с картинкой через MultipartURLLoader.. ОШИБКУ выдает..
Пытался через urlloader загрузить на сервер вк - тоже ошибку выдает {неверный файл}
private function UploadVideo(e:Event):void {
var video:ByteArray = new ByteArray();
video.writeObject(e.target.data);
//var urlvariables:URLVariables = new URLVariables();
//urlvariables.video_file = video;
//var urlrequest:URLRequest = new URLRequest();
//urlrequest.method = URLRequestMethod.POST;
//urlrequest.data = urlvariables;
//urlrequest.url = UploadUrl;
//
//var urlloader:URLLoader = new URLLoader();
//urlloader.load(urlrequest);
//urlloader.addEventListener(ProgressEvent.PROGRESS, LoadProgress);
//urlloader.addEventListener(Event.COMPLETE, UploadedVideo);
//
var mll:MultipartURLLoader = new MultipartURLLoader();
mll.addFile(video, "video_file.flv", "video_file");
mll.load(UploadUrl);
mll.addEventListener(ProgressEvent.PROGRESS, function(e:ProgressEvent):void {
trace("закачиваем "+uint(e.bytesLoaded/e.bytesTotal*100) );
});
mll.addEventListener(IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void {
trace("ошибка MultipartURLLoader " + e);
});
mll.addEventListener(Event.COMPLETE, function(e:Event):void{
e.currentTarget.removeEventListener(e.type, arguments.callee);
var obj:Object = JSON.decode(e.currentTarget.loader.data);
trace(e.currentTarget.loader.data);
});
}