Flash Media Server |
|||
| Client-Side ActionScript Language Reference for Flash Media Server 2 > Client-Side ActionScript Language Reference > NetStream class > NetStream.publish() | |||
public publish(name: String [,howToPublish: String] ) : Void
name A string value that identifies the stream. If you pass false, the publish operation stops. Subscribers to this stream must pass this same name when they call NetStream.play(). You don't need to include a file extension for the stream name.
howToPublish An optional string that specifies how to publish the stream. Valid values are "record", "append", and "live". The default value is "live".
"record" for howToPublish, Flash publishes and records live data, saving the recorded data to a new file named name.flv. The file is stored on the server in a subdirectory within the directory containing the server application. If the file already exists, it is overwritten. For more information on where recorded streams are stored, see the Description below."append" for howToPublish, Flash publishes and records live data, appending the recorded data to a file named name.flv, stored on the server in a subdirectory within the directory containing the server application. If no file named name.flv is found, it is created."live", Flash publishes live data without recording it. If name.flv exists, it will be deleted.Nothing.
Method; sends streaming audio, video, and text messages from the client to the Flash Media Server, optionally recording the stream during transmission. This method is available only to the publisher of the specified stream.
You don't use this command when you want to let a subscriber play a stream that has already been published and recorded. For example, assume you have recorded a stream named "allAboutMe." To enable someone to play it back, you need only open a stream for the subscriber to use:
var publish_ns:NetStream = new NetStream(my_nc);
var subscribe_ns:NetStream = new NetStream(my_nc);
subscribe_ns.play("allAboutMe");
When you record a stream, Flash creates an FLV file and stores it in a subdirectory of the Flash Media Server applications directory on the server. Each stream is stored in a directory whose name is the same as the instanceName value passed to NetConnection.connect(). Flash creates these directories automatically; you don't have to create one for each instance name. For example:
/* Connect to a specific instance of an app that is stored in
a directory named "lectureSeries" in your applications directory.
A file named "lecture.flv" is stored in a subdirectory named
"...\yourAppsFolder\lectureSeries\streams\Monday". */
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://server.domain.com/lectureSeries/Monday");
var my_ns:NetStream = new NetStream(my_nc);
my_ns.publish("lecture", "record");
/* Connect to a different instance of the same app
but issue an identical publish command.
A file named "lecture.flv" is stored in a subdirectory named
"...\yourAppsFolder\lectureSeries\streams\Tuesday". */
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://server.domain.com/lectureSeries/Tuesday");
var my_ns:NetStream = new NetStream(my_nc);
my_ns.publish("lecture", "record");
If you don't pass a value for instanceName, name.flv is stored in a subdirectory named "...\yourAppsFolder\appName\streams\_definst_" (for "default instance"). For more information on using instance names, see NetConnection.connect(). For information on playing back FLV files, see NetStream.play().
This method can invoke NetStream.onStatus with a number of different information objects. For example, if someone is already publishing on a stream with the specified name, NetStream.onStatus is called with a code property of NetStream.Publish.BadName. For more information, see NetStream.onStatus.
The following example shows how to publish and record a video, and then play it back:
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://myServer.myDomain.com/appName/appInstance");
var src_ns:NetStream = new NetStream(my_nc);
src_ns.publish("stephen", "record");
src_ns.attachVideo(Camera.get());
// to stop publishing and recording
src_ns.publish(false);
// to play the recorded stream
src_ns.play("stephen");
NetConnection.connect(), NetStream.play(), Video.attachVideo()