ActionScript 3.0 :: Pass Netconnection To Netstream?
Apr 30, 2009
I should probably be refrencing a book rather than continueing to ask questions here but there are no books for AS 3.0 and flash media server. So this forum is my book i suppose any way here is what i have...I have 2 .as files one holding code for a netConnection and one for creating the netStream my problem is i need to pass the netConnection refrence from the netConnection.as file to the netstream....here is my failed attempt to do so I also get the following error message..ArgumentError: Error #2126: NetConnection object must be connected.
I have to replace the mx:VideoDisplay component in an existing Flex project with a custom made component. To achieve this, I have to conform to its current Interface, so my component receives the video urls (via source parameter) in the form of either: /data/myflvfile.flv (if the file is played locally) rtmp://streamcloud.myserver.com/cfx/st/somedirectory/myflvfile.flv (if the file is streamed from Cloudfront)
My new component is based on NetConnection and NetStream. With any of the entries above I have to split the input in two strings: one for the NetConnection.connect(NetConnectionStr) method and the other for the NetStream.play(NetStreamStr) method. For instance:
Building the two strings is very obvious for the "local files" case, but it gets tricky in the others. The problem is that I have no smart way to guess what part of the input is the server URL and what part is the stream name + directory structure. In some examples found on the Internet, people are simply guessing that the last part of the source (what is after the last "/" found) is the NetStream name. In my case, this is not always true because the streams may be in subdirectories on the server. It is even worse because server names may contain "/" characters!
Strategies to solve it: Connecting to server, retrieving its real URL, finding stream name As NetConnection seems to be "smart" enough, my first attempt was to invoke connect method with the full source url. Unfortunately, I found no way to get the real server address out of a NetConnection object (connection.uri returns back the exact input). So this seems to be a dead end. Connecting to server, iteratively retrieving streams. Another strategy could be to connect to the server and then try iteratively (starting from the very end) to play streams until it works:
I am having difficulty in adjusting a statement to fit my circumstances. I have a variable being set using flashvars that looks like:
Code: video_link: "rtmp://s3hejskwlkdjsjs.cloudfront.net/cfx/st/sites/default/files/videos/myvideo.flv" and a flash function that looks like: Actionscript Code:
I am aware that I can share simple Objects using LocalConnection, but this does not (in my limited testing) appear to work with NetConnection or NetStream.
In short, I wish to have a single SWF that acts as a NetConnection proxy for other SWF files in the HTML page. The client SWFs require direct access to NetStream objects on the proxys NetConnection.
Is this at all feasible, or will each client SWF require its own NetConnection?
I am aware that I could build the entire application in flash and utilize a single NetConnection internally, but this is NOT what I want to do.
How many instances of Video, NetStream and NetConnection would be needed for multiple videos?Not sure that's the right question but essentially here's the objective:Currently, I'm working on an interactive product tour, parts of which are to consist of short video clips, each covering a feature. While only one such clip will be playing at any given time, I'd like put them all at the application's fingertips as part of the initial preloading process before launching into it. The idea is to provide a seamless instant-play user experience without hitting the breaks before individual segments.Honestly, I hate pre-caching crap into user's memory, especially when some of that content may be potentially ignored. However, given the target audience, it is reasonable to predict that all features will be explored most of the time, so it's a fair compromise to me. Besides, I went to great lengths to keep the mp4s' sizes to the minimum.Anyway, I'm guessing you don't really need more than one instance of the Video class but how many NetStreams and NetConnections do I you need, probably one of each per video, ha?
How many instances of Video, NetStream and NetConnection would be needed for multiple videos? Not sure that's the right question but essentially here's the objective:
Currently, I'm working on an interactive product tour, parts of which are to consist of short video clips, each covering a feature. While only one such clip will be playing at any given time, I'd like put them all at the application's fingertips as part of the initial preloading process before launching into it. The idea is to provide a seamless instant-play user experience without hitting the breaks before individual segments.
I would like to pass a value from a text box on stage as the URL or filename to the NetStream.play() argument. example:
var url:String = url_text.text; var conn:NetConnection = new NetConnection(); conn.connect(null);
[Code].....
The point of the matter is that I'm pulling the values from JavaScript/HTML using the ExternalInterface which changes as the user selects next on a HTML page. The page name (URL) is being parsed and passed back as the video filename. I'm using the text boxes currently just to test/view the values being received and sent to JavaScript. The value send and receive fine, I just can not seem to pass the value into the NetStream.play(JavaScriptValue).
function getTextFromJavaScript(str:String):void { sending_ti.text = str; var jsArgument:String = sending_ti.text;
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.
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
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 want to serialize an object to AMF, and I want the result to be exactly the same as if it is serialized by NetConnection.call(). So, I use ByteArray.writeObject(), and the output bytes are usually the same as bytes sent by NetConnection.call(), but sometimes couple of bytes are different.
I found this in AMF3 spec: "Note that ByteArray.writeObject uses one version of AMF to encode the entire object. Unlike NetConnection, ByteArray does not start out in AMF 0 and switch to AMF 3 (with the objectEncoding property set to AMF 3)." It explains that differences.
This code is on the opening frame of one of my Flash files:
Code: var myConnection:NetConnection = new NetConnection(); myConnection.connect("rtmp://fvss.playstream.com/fvssod/myclient"); var myStream:NetStream = new NetStream(myConnection); myVideo.attachVideo(myStream); myStream.play("iLoveLALong");
It starts this song "iLoveLALong" as background music. Works great. But now I need to turn the music off when I jump to another frame in the Flash doc. Can anyone suggest code that will do that, either with frame code or button code?
I'm having to pass data (originally read via an XML file loaded by the parent class) to a child class upon instantiation, and I can't decide which is the better method.I could parse the XML in the parent and throw the data into an Object and pass that object to the child class....or just pass the part it needs as an XMLList and let the child class do the parsing.Seems like a trivial decision, yes, but I'm not sure of longer-term implications.
I'm writing an audio recorder in AS3.In AS2, when I loaded up the swf object, the "Camera and Microphone Access" window would pop up immediately. ("Requesting access to your camera and microphone .. allow").However, in AS3, it still works, but there is a noticeable 2-3 second delay before that window pops up.
Is it possible to do a fileref.upload through a NetConnection, so I can call a class inside my php instead of a direct URL to my php file? now I have it like this fileRef.upload(new URLRequest("upload.php")); but I want to get it into a call function..
Is it possible to use the flash.net.NetConnection object to connect to my Flash remoting enabled web application over HTTPS within Tomcat or any other servlet container?
I am using the SpiceFactory cinnamon project for amf remoting and have searched for examples of using HTTPS but see only the reference to a proxy type in the NetConnection object.
If someone could provide a reference or example that would be awesome. Or if it is not possible using the flash.net.NetConnection object are there any recommendations of how to configure HTTPS for the spicefactory cinnamon library.
I followed the above example in AS2,but only get the error:
Call to a possibly undefined method getNetConnection through a reference with static type fl.video:INCManager.Here's my code: this.addEventListener(Event.ENTER_FRAME,
I need a solution for this: when the port 1935 is closed, the NetConnection switch rtmpt (port 80). The NetConnection class built in function: proxyType="HTTP" not works or I use not rightly.In the FLVPlayback class works this function, but I don't know how..
i m new for FMS I just wanna make a connection, I put swf file in FMS folder and here my codepackage{ import flash.net.NetConnection; import flash.display.Sprite; importflash.text.TextField; import flash.events.NetStatusEvent;public class main extends Sprite private var
Can anyone tell me why I would not be getting Netconnection.NetworkChange and Netconnection.Closed events would not be getting fired when I am working on Flash CS5?
I get the Success event, but when I am attempting to test my reconnection code I pull out my network cabled and I never get the closed event.
Interestingly, I do get the Closed and NetworkChange events when I am debugging, but not when I just run the movie.
I want to count the online user,when each client login the system,it's connecting to the server and increase a variable stored in a remote shared object.But when client connecting server,problems arises:Error #2126: NetConnection object must be connected
My web layout:
Website --- apps --- userLogin
Code snippets:
rtmpnc = new NetConnection(); rtmpnc.objectEncoding = ObjectEncoding.AMF0; var uri:String = ServerConfig.getChannel("my-rtmp").endpoint + "/userLogin"; rtmpnc.connect("http://202.206.249.193:2367/userLogin");
The ActionScript 3.0 Reference says the following about flash.net.NetConnection:
The NetConnection class creates a two-way connection between a client and a server. The client can be a Flash Player or AIR application. The server can be a web server, Flash Media Server, an application server running Flash Remoting, or the Adobe Stratus service. Call NetConnection.connect() to establish the connection.
Does this mean I make a regular HTTP connection to any web server using an NetConnection object? I am a little confused about this as further down the section on the connect() method says connect(): Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way network endpoint for RTMFP peer-to-peer group communication....Pass an "http" URL to connect to an application server running Flash Remoting.. So, the application server has to have Flash Remoting?