Flex :: What Hinders NetStream.onPeerConnect From Being Triggered
Dec 2, 2010
I'm using Adobe Stratus (now renamed to Cirrus) to build a p2p application. Inside the application, I used NetStream.onPeerConnect callback function and expected it to be triggered every time when a peer is connected. However, it always failed with my friend A while strangely friend B managed to have the function called without any problem.
Here are how the code pieces look like.First of all, create a NetConnection.
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnectionHandler);
netConnection.connect(SERVER_ADDRESS+DEVELOPER_KEY);
Secondly, create NetStream upon NetConnection successfully connected.
private function netConnectionHandler(event:NetStatusEvent):void{
switch (event.info.code){
case "NetConnection.Connect.Success":
sendStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
I have a NetGroup established using Adobe Cirrus. All clients can connect fine and see each other, since I receive NetGroup.Neighbor. Connect and NetGroup.MulticastStream.PublishNotify events when a new stream is being published.However, if a user subscribes to a published stream, the publisher does not receive a notification (no NetStatusEvent and no callback to the onPeerConnect method). The subscriber receives the stream without problems, though.All other questions about the non working onPeerConnect method were related to NetStream.DIRECT_CONNECTIONS, but in my case, I am using a NetGroup.
What is wrong here? Only the relevant parts, a few things have been stripped (e.g. connect the netGroup only when the NetConnection has been established etc.)
var groupSpecifier:GroupSpecifier = new GroupSpecifier("group"); groupSpecifier.multicastEnabled = true; groupSpecifier.postingEnabled = true;[code].....
Anyone familiar with using Cirrus? [URL].. I'm having the hardest time getting the onPeerConnect object to work the way it should. I just need to be able to just take 1 sides nearID and give it to the other. and then when the near tries to connect to the far, the far should return true and allow connection, then at the same time grab the connecting farID on its own with farID = subscriber.farID; (which works, i confirmed it's getting the farID) but when i try this code it just see it getting spammed with....
I created a button that looks up the coordinates of the device. There is no errors in the code but for some reason which is eluding me, the event is not being triggered.
Here is my code:
protected function lblCheckIn_clickHandler(event:MouseEvent):void { if (Geolocation.isSupported)
What's the call analogous to creationComplete that happens every time a component is rendered? I want to rerun a function every time the component gets rendered (it has to make an HTTP request, but the url it calls changes each time) and I can't figure out how to do it.
When I enter incorrect values in the txtother.textbox and focuses out, an alert will be displayed as "Please enter a valid Format Mask." . After pressing the "ok" button in the Alertbox the txtOther.focusout even is triggered again. i.e. immediately after pressing the OK of alert, the same ALERT is displayed again.
I don't want to the alert to come again and again .. I need it in such a way that when the ok button of alert is pressed. The txtother.text should be in focus, and the alert should not come again and again as before.
I am writing a web application that will serve as a configuration for a random data generator that I have written in Java.The values that I set in this application will write to xml. The xml data is updated by a file called simulationParams.as and that file is added to each child in the "viewStack" so that when I change any of those values the simulationConfig file will be automatically updated.The problem is that when I press the randomizeBtn the proper events are fired and the listeners grab those events.My problem exists when I uncheck the randomize button.For some reason an event is triggered or the listener isnt listening so that when I uncheck randomizeBtn the values go back to their last position or value on the slider. Ex. if my initial value is 0 then press randomize the slider will go to 100. The config file updates and all is well.When I uncheck the randomizeBtn, the sliders value goes back 0 but the config file isnt update.The same thing happens when I press the useDefaultBtn for both selected/unselected, nothing gets updated.[code]
I have a custom component I've developed that's part of a dashboard.It does some polling based on a timer that's part of the component.
When the user navigates away from the view that contains this component I would like to stop the timer and hence stop the polling.I can obviously fire an event when the view's changed and catch it within the component but I was hoping that there might be a way to contain this all within the component.Is there an event or state change within a component that triggers and even when a component is currently be displayed?
If I set customComponent.Visible to false, the component gets hidden (as expected). But doesn't trigger the hideFX at all. Am I doing something wrong? Or isn't this the correct way to use hideEffect and showEffect?
I'm making a small video players in AS3, and I've found that after calling NetStream.pause() or NetStream.togglePause(), no status messages are being fired any more.If I click the "pause" button while the video is buffering, I never get the Buffer.Full message.Here is some code:
_connection = new NetConnection(); _connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); _connection.connect(null);[code].....
I am working on an app that will take a snapshot of an rtmp stream of an archived video, save it to a file, and ExternalInterface the file name to the hosting page to javascript it up for display.
I actually have all pieces working great. The only time an error is thrown is when I pause the video, seek to somewhere, and then try to take a snapshot. Then there is a runtime error of: SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: mySwf.swf cannot access rtmp://myFlashServer/myApp. No policy files granted access.I've seen post after post of suggestions and have tried them, but without success.
I have the crossdomain.xml and my FlashMediaServer security setup fine (it is actually working, except for this one glitch). It just seems to be the pause-then-seek-then-BitMapData.draw() combination which is creating issues.
Another weird thing: after the error is thrown, if I resume the stream and take a snapshot, it works flawlessly again.
In a Flex NetStatusEvent of type NetGroup.MulticastStream.PublishNotify, you get the String name of the stream in e.info.name
The name is what the publisher specified in the .publish ("") method. But in a NetStatusEvent of type NetStream.Connect.Success, there is no such property. Instead, the whole NetStream object is available through e.info.stream
How the heck to you get something as basic as the name from the NetStream object? e.info.stream.name does not exist. I must be overlooking something very simple.
I'm creating a video chat app using Flash Media Server 4 and Flex, using RTMFP for peer-to-peer.No matter what I try, I cannot mute a user's NetStream. I tried receiveAudio(false) and that does not work. I tried capturing the stream SoundTransform and setting the volume of that to 0, that does not work.I tried setting the mx VideoDisplay volume to 0 and that does not work.I can set the alpha of the VideoDisplay, so its really strange that I cannot set the volume.BTW, I am not trying to mute the mic of the user who launched the app, that I can do. I'm trying to mute one of the other users stream in the Flex app, that way the app makes it possible to not hear people who are perhaps being offensive.
I'm working on simple videochat app with Adobe FMS 4.5. Everything works fine except one thing: I have small videoDisplay for each connected client and one main display. So user can choose his main interlocutor. When i'm trying to attach netStream to main display from small one, streaming on small one stops.
I am using NetStream, NetConnection and Video object to play an mp4 file which is hosted over a web server using http.This is an AIR application and the relevant code is pasted below:
var url:String = <some http url>; connect_nc = new NetConnection(); connect_nc.connect(null);
In my application I have a video playing from a NetStream. Every second on timer I update a text label with statistics like stream.info.currentBytesPerSecond. The problem occurs when the NetConnection associated with this NetStream closes: the getter for stream.info throws
In Flex you can stream microphone audio to an FMS/Red5 server using NetStream.attachAudio, which requires a Microphone object. Is it possible to stream audio through the NetStream from somewhere other than a Microphone? For example, from a file/embedded resource?
The reason I'm asking is that I'd like to be able to run automated tests that don't require using an actual microphone.
I have a publisher who publishes a netstream using stratus p2p. This is then connected to by player who subscribes to the netstream.
I believe one can reject the subscriber when the stream tries to connect by using the onPeerConnect method of the netstream's client. However, I would like to boot the subscriber after they have been connected.
There are potentially other subscribers to that netstream so I cannot just close it. How would I boot a particular subscriber without closing the published netstream?
I have a simple video/chat application built in FLEX. I've created a groupSpecifier,netGroup and a NetStream for the different functionalities. NetGroup is mainly used for the messaging (Posting) and keeping track of the users who enter.NetStream is (or would be used) to control some functions like "start video, stop video" for everyone under the same group.The most important functions I will post on here. The first is setupGroup.
private function setupGroup():void{ var groupspec:GroupSpecifier = new GroupSpecifier("vid"+GROUP_ID+"_sid_"+SESSION_ID); groupspec.serverChannelEnabled = true;
I have a Flex/AIR desktop application that connects a local camera and microphone to a NetStream for delivery to a Flash media server.However, I would also like to archive a copy of the outgoing stream locally on the filesystem. Is there any access to the actual bytestream of a NetStream object (even in the dreaded mx.internal namespace) that I could turn around and feed to a FileStream for the local archive?
How to send a video data stream from one side written by java to another side written by flex and then display it? I just know that on flex one method is to use netstream class get the real-time video stream and bind with a videodisplay to display it. But which class I should use to send this video stream in java and which class I need to use in flex to receive this flow and pass it to the NetStream class?
I started using Adobe Stratus yesterday and made a simple chat application. Today, I was to learn how to use the group feature. But when I try to instantiate a GroupSpecifier variable, I get this error: 1046: Type was not found or was not a compile-time constant: GroupSpecifier. P2P.mxml Earlier I was getting a similar error with NetStream (in place of GroupSpecifier). I have Flex 4.1 and it's set to Flash Player 10.1.
So I built a videochat client that uses the adobe stratus protocol. Its very simple and just connects two users. However, after about a minute of video chatting the clients freeze and the browser crashes.what might have caused this? Is there some sort of cache that I need to clear every so often or a possible memory leak? I am not sure where to start
Am building a video chat application and i was wondering if there are any native events for the NetStream that fire,that can help in detecting when a remote client starts/stops streaming video over his outgoing stream (NetStream) to which the other client has subscribed over P2P/RTFMP in AS3 ?I maybe able to dispatch custom messages since the two clients are already connected, but i don't want to add the extra overhead.
A NetStatusEvent with info.code of "NetStream.Connect.Closed" is dispatched by NetConnection when a NetStream is closed. This seems kind of weird, shouldn't the NetStream dispatch the event? how do I know which NetStream has been closed if I have more than one running (which I do)? I need to know so I can cleanup the now dead stream.
I'm trying to play a 10 minute long video (h264/mp4) which is 39MB in size, after I call stream.play(fileURL) it doesn't start playback until its loaded around 12-16MB of the file (many many seconds later), I finally get onMetaData at this point too. Why doesn't it begin playback right away, or at least w/in a couple seconds? What can cause this bloated lead in time?
I'm a Flash newbie and I'm trying to get some keyboard action going. I've followed some tutorials, but nothing seems to work. To test it I created a brand new fla file and added the following code in the first frame:
[Code]...
The first trace ("Add listener") shows up in the debug output, but no matter which keys I press I can't get the function to be called. Am I doing it wrong?
NetStatusEvent has only one type of event: NetStatusEvent.NET_STATUS; but it comes with many codes for various cases.
Here they are, listed.
However, a lot of them are not triggered for me. I know some are FMS specific but I'm talking about "NetStream.Play.Stop", "NetStream.Pause.Notify" or "NetStream.Unpause.Notify".
Is there a case when they shouldn't be triggered, even though I'm calling NetStream's control functions (which take effect), or a known issue around this matter?