![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 3
|
У меня есть один flv-файл. Есть флешка на AS3, внутри которой созданы 2 объекта, которые через NetStream скачивают и проигрывают этот flv-ролик. То есть 2 NetStream'а обращаются к одному и тому же ролику.
Нужно чтобы на экране в одной флешке играло в двух окнах один и тот же ролик!!! Фишка в том, что кэш почему-то не работает... и ролик одновременно в двух потоках не грузится... то есть второй поток начинает его грузить С НУЛЯ после того, как его скачает первый поток... Подскажите, пожалуйста, как можно справиться с такой проблемой? |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
было бы прикольно если бы можно было отрисовывать видео в мувике.
А возможно ли это? |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 3
|
Цитата:
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 = "1.flv";
private var connection:NetConnection;
private var stream:NetStream;
public function NetConnectionExample() {
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect(null);
}
private function netStatusHandler(event:NetStatusEvent):void {
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 stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.client = new CustomClient();
var video1:Video = new Video();
video1.attachNetStream(stream);
var video2:Video = new Video();
video2.attachNetStream(stream);
stream.play(videoURL);
addChild(video1);
addChild(video2);
video2.x = 200;
video2.y = 200;
}
}
}
class CustomClient {
public function onMetaData(info:Object):void {
}
public function onCuePoint(info:Object):void {
}
}
|
|
|||||
|
У меня тоже показывает только последнее. В чем причина?
(на ас2 один стрим можно было аттачить к нескольким видео) Пробовал ФЛВшки со звуком и без
__________________
Сам себе репортер |
|
|||||
|
Modus ponens
|
/**
* ...
* @author wvxvw
* @version 0.1
*/
package controller.ut {
import flash.events.Event;
import flash.events.NetStatusEvent;
import flash.events.AsyncErrorEvent;
import flash.events.EventDispatcher;
import flash.net.NetConnection;
import flash.net.NetStream;
import controller.evt.EventList;
import controller.evt.NCCevt;
public class ULvideoconnector extends EventDispatcher {
private var nc:NetConnection;
private var url:String = '';
private var ns:NetStream;
public function ULvideoconnector() {
url = '';
}
public function connect(s:String) {
url = s;
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.connect(null); //url
}
private function netStatusHandler(evt:NetStatusEvent):void {
if (evt.info.code == "NetConnection.Connect.Success") {
ns = new NetStream(nc);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
ns.addEventListener(NetStatusEvent.NET_STATUS, msStatusHandler);
dispatchEvent(new NCCevt(EventList.VIDEO_READY, ns, url));
ns.play(url);
}
}
private function asyncErrorHandler(evt:AsyncErrorEvent):void { };
private function msStatusHandler(evt:NetStatusEvent):void {
trace(evt.info.code);
}
}
}
import controller.evt.NCCevt; - Это ивент содержащий ссылку на стрим, его получают сразу несколько инстансов видео. Все вроде играет...
__________________
Hell is the possibility of sanity |
|
|||||
|
Интереснее знать почему приведенный пример не работает
__________________
Сам себе репортер |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 3
|
Цитата:
Я сделал так: public class Main extends MovieClip
{
public function Main()
{
var c : ULvideoconnector = new ULvideoconnector();
c.addEventListener(NCCevt.VIDEO_READY, videoReadyHandler);
c.connect("1.flv");
}
private function videoReadyHandler(event : NCCevt) : void
{
var video1:Video = new Video();
var video2:Video = new Video();
video1.attachNetStream(event.netStream);
video2.attachNetStream(event.netStream);
addChild(video1);
addChild(video2);
video1.x = 100;
video1.y = 100;
video2.x = 200;
video2.y = 200;
}
}
Последний раз редактировалось debacle; 12.03.2008 в 14:28. |
|
|||||
|
Modus ponens
|
Ну, ей богу... я не знаю =( У меня чуть по-сложнее структура, но принцип точно такой же...
Может нельзя 2 объекта видео в одном родителе с одинаковыми стримами? Бред конечно... но никаких предположений больше нет... Проeкт дома, сейчас не получится потестить. Самое смешное, я даж не думал, что в этом есть проблема, как написал, так и работало %)
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|