PDA

Просмотр полной версии : Возможности Flex по работе с видео


didvdk
16.03.2008, 23:23
Здравствуйте, все!

Мы сейчас пытаемся создать видео-плейер на Flex, работающий в локальной сети.

Пользователь вводит название ролика, плейер отправляет запрос на сервер с базой данных, в которых хранится только информация о роликах (рейтинг, комменты, и, самое главное, где лежит видео - просто UNC путь, например: \\server\video\Fun\football.avi).

Затем он получает список похожих видео (по названию) и кликает по какому-то из них. Оно, соответственно, проигрывается. По крайней мере, мы хотим сделать так.

Можно ли так сделать? Т.е., конкретней, сможем ли мы просто по UNC (Samba) пути загружать и проигрывать эти ролики без особых трудностей? Если нет, то существует ли какой-то способ реализовать эту возможность средствами Flex, или средствами, которые умеют взаимодействовать с Flex/Flash?

Посоветуйте, пожалуйста, как бы вы реализовали такую функциональность? Трудность в том, что в сетке много роликов, толстых видео и нет возможности хранить все централизованно, в одном формате.

Спасибо

terbooter
17.03.2008, 10:26
По самбе проигрывает видео
package {
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;

public class NetConnectionExample extends Sprite {
private var videoURL:String = "\\\\Black\\distrib\\Transformers.flv";
private var nc:NetConnection;
private var ns:NetStream;

public function NetConnectionExample() {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
nc.connect(null);
}

private function netStatusHandler(event:NetStatusEvent):void {
trace(event.info.code)
switch (event.info.code) {
case "NetConnection.Connect.Success":
connectStream();
break;
case "NetStream.Play.StreamNotFound":
trace("Stream not found: " + videoURL);
break;
}
}

private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}

private function connectStream():void {
var ns:NetStream = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
ns.play(videoURL);
ns.client = new CustomClient();
var s:Sprite = new Sprite();
addChild(s);

var video1:Video = new Video();
s.addChild(video1);
video1.attachNetStream(ns);
var video2:Video = new Video();
video2.attachNetStream(ns);

var video3:Video = new Video(160, 120);
video3.attachNetStream(ns);
addChild(video3);
video3.x = 200;

addChild(video1);
addChild(video2);
video2.attachNetStream(ns);
video3.attachNetStream(ns);
// video1.attachNetStream(ns);
video1.x = 0;
video1.y = 0;
video2.x = 200;
video2.y = 200;
}
}
}

class CustomClient {
public function onMetaData(info:Object):void {
}
public function onCuePoint(info:Object):void {
}
}

didvdk
17.03.2008, 15:49
Спасибо за ответ!

Еще остается вопрос о проигрывании avi файлов. Это возможно?