Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   При попытке создать NetStream получаю NetStream.Publish.BadName (http://www.flasher.ru/forum/showthread.php?t=147794)

Annihilator 14.12.2010 12:28

При попытке создать NetStream получаю NetStream.Publish.BadName
 
Ситуация следующая: есть два класса - Conference, в котором создано соединение NetConnection
Код AS3:

 public class Conference extends Sprite
  {
        public var nc:NetConnection;
        private var rtmpURL:String = "rtmp://fibw0251.fib.com/multichat";
        private var curuser:Object = new Object();
 
        public function Conference():void
        {
                if (stage) init();
                else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        public function init(e:Event = null)
        {
                nc = new NetConnection();
                nc.addEventListener(NetStatusEvent.NET_STATUS, getStream);
                nc.connect(rtmpURL, login_window.login.text);
        }
 
        private function getStream (e:NetStatusEvent):void
        {
                trace(e.info.code);
                if (e.info.code == "NetConnection.Connect.Success") {
                        nc.removeEventListener(NetStatusEvent.NET_STATUS, getStream);
                        curuser.name = login_window.login.text;
                        login_window.visible = false;
                        comboset = new Comboset();
                        this.addChild(comboset);
                        comboset.userVid_0.init(curuser.name, 320, 240, nc);
                        comboset.userVid_0.publishStream();
                }
        }
}

и UserVid, в котором публикуется или аттачится NetStream
Код AS3:

public class UserVid extends Sprite
{
        private var username:String = "";
        public var free:Boolean = true;
        private var videoIn:Video;
        public var ns:NetStream;
        private var nc:NetConnection;
        private var cam:Camera;
        private var mic:Microphone;
 
        public function UserVid() {
        }
 
        public function init( _username:String, _vidWidth:int, _vidHeight:int, _netcon:NetConnection)
        {
                free = false;
                fusername.text = username = _username;
                nc = _netcon;
                videoIn = new Video(_vidWidth, _vidHeight);
                this.addChild(videoIn);
        }
 
        public function publishStream()
        {
        mic = Microphone.getMicrophone();
        cam = Camera.getCamera();
        if (cam != null) {
                if(cam.muted){
                        cam.addEventListener(StatusEvent.STATUS, camStatusHandler);
                } else {
                        setCam();
                        setMic();
                        ns = new NetStream(nc);
                        ns.attachAudio(mic);
                        ns.attachCamera(cam);
                        videoIn.attachCamera(cam);
                        ns.publish (("stream_" + username), "live");
                        }
                }
        }
 
        private function camStatusHandler(e:StatusEvent)
        {
                trace(e.code);
                if(e.code == "Camera.Unmuted"){
                        setCam();
                        setMic();
 
                        ns = new NetStream(nc);
                        ns.attachAudio(mic);
                        ns.attachCamera(cam);
                        videoIn.attachCamera(cam);
                        ns.publish("stream_" + username, "live");
                }
        }
        private function setCam():void
        {
            cam.setMode (320, 240, 24);
            cam.setQuality (0, 80);
        }
 
        private function setMic():void
        {
            mic.rate = 11;
            mic.setSilenceLevel (12, 2000);
        }
}

При попытке паблишить поток получаю ошибку
Цитата:

NetStatusEvent:. level=error, code=NetStream.Publish.BadName
при чем ругается на строчку
Цитата:

ns = new NetStream(nc);
Если все в одном классе и создается прямо на сцене, то никаких проблем, но как только начинаю разбивать на классы, передавать туда ссылки или хотя бы даже делать видео в отдельном мувиклипе, то вылазит эта ошибка.
Помогите, пожалуйста, разобраться.

Добавлено через 26 часов 34 минуты
Переделал приложение так, чтобы все соединения и потоки создавались и хранились в пределах главного класса, а в объекты остальных классов передаю ссылки. Так работает.


Часовой пояс GMT +4, время: 21:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.