/***************************************************** * * Copyright 2009 Adobe Systems Incorporated. All Rights Reserved. * ***************************************************** * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * * The Initial Developer of the Original Code is Adobe Systems Incorporated. * Portions created by Adobe Systems Incorporated are Copyright (C) 2009 Adobe Systems * Incorporated. All Rights Reserved. * *****************************************************/ package org.osmf.net { import __AS3__.vec.Vector; import flash.utils.ByteArray; import org.osmf.media.URLResource; /** * StreamingURLResource is a URLResource which is capable of being * streamed. It exposes some additional properties which are specific * to streaming media. * *

Note that it is possible for live and recorded streams to have * identical URLs. In such a case, the streamType property should be * used to disambiguate live and recorded streams.

* * @includeExample StreamingURLResourceExample.as -noswf * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public class StreamingURLResource extends URLResource { /** * Constructor. * * @param url The URL of the resource. For details about how to format this * URL for flv, mp4, and other file formats, see the Adobe® Flash® Media Server * documentation link below. * @see http://www.adobe.com/go/learn_OSMF_fms_url_format_en * @param streamType The type of the stream. If null, defaults to * StreamType.RECORDED. * @param subclipStartTime Optional start time of the streaming * resource. When specified, the stream will be presented as a * subclip, with playback beginning at the specified start time. * @param subclipEndTime Optional end time of the streaming resource. * When specified, the stream will be presented as a subclip, with * playback ending at the specified end time. * @param connectionArguments Optional set of arguments that will be * supplied to NetConnection.connect when establishing a connection * to the source of the stream. * @param urlIncludesFMSApplicationInstance Indicates, for RTMP streaming * URLs, whether the URL includes the FMS application instance or not. If * true, then the second part of the URL path is considered the instance * name, such as rtmp://host/app/foo/bar/stream. In this case * the instance name would be 'foo' and the stream would be 'bar/stream'. * If false, then the second part of the URL path is considered to be the * stream name, such as rtmp://host/app/foo/bar/stream. In this * case there is no instance name and the stream would be 'foo/bar/stream'. * The default is false. * @param drmContentData Content metadata for DRM-encrypted content. * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function StreamingURLResource ( url:String , streamType:String = null , clipStartTime:Number = NaN , clipEndTime:Number = NaN , connectionArguments:Vector. = null , urlIncludesFMSApplicationInstance:Boolean = false , drmContentData:ByteArray = null ) { _streamType = streamType || StreamType.RECORDED; _clipStartTime = clipStartTime; _clipEndTime = clipEndTime; _urlIncludesFMSApplicationInstance = urlIncludesFMSApplicationInstance; _drmContentData = drmContentData; _connectionArguments = connectionArguments; super(url); } /** *

The StreamType for this resource. The default value is StreamType.RECORDED. * The StreamType class enumerates the valid stream types.

*

*

This property may return the following string values:

* * * * * * * * * * * * * * * * * * * * * *
String valueDescription
StreamType.LIVE_OR_RECORDEDThe StreamingURLResource represents either a live or a recorded stream.
StreamType.LIVEThe StreamingURLResource represents a live stream.
StreamType.RECORDEDThe StreamingURLResource represents a recorded stream.
StreamType.DVRThe StreamingURLResource represents a DVR stream.
* * @see StreamType * * @langversion 3.0 * @playerversion Flash 10 * @playerversion AIR 1.5 * @productversion OSMF 1.0 */ public function get streamType():String { return _streamType; } public function set streamType(value:String):void { _streamType = value; } /** * Optional start time of the streaming resource. When specified, * the stream will be presented as a subclip, with playback beginning * at the specified start time. Note that clipStartTime is not * currently supported for progressive videos. The default is NaN, * which is to start at the beginning. **/ public function get clipStartTime():Number { return _clipStartTime; } public function set clipStartTime(value:Number):void { _clipStartTime = value; } /** * Optional end time of the streaming resource. When specified, * the stream will be presented as a subclip, with playback ending * at the specified end time. Note that clipEndTime is not * currently supported for progressive videos. The default is NaN, * which is to play to the end. **/ public function get clipEndTime():Number { return _clipEndTime; } public function set clipEndTime(value:Number):void { _clipEndTime = value; } /** * Optional set of arguments that will be supplied when making a * connection to the source of the stream. **/ public function get connectionArguments():Vector. { return _connectionArguments; } public function set connectionArguments(value:Vector.):void { _connectionArguments = value; } /** * Content metadata for DRM-encrypted content. **/ public function get drmContentData():ByteArray { return _drmContentData; } public function set drmContentData(value:ByteArray):void { _drmContentData = value; } /** * Indicates, for RTMP streaming URLs, whether the URL includes the FMS * application instance or not. If true, then the second part of the URL * path is considered the instance name, such as rtmp://host/app/foo/bar/stream. * In this case the instance name would be 'foo' and the stream would be 'bar/stream'. * If false, then the second part of the URL path is considered to be the * stream name, such as rtmp://host/app/foo/bar/stream. In this * case there is no instance name and the stream would be 'foo/bar/stream'. * The default is false. **/ public function get urlIncludesFMSApplicationInstance():Boolean { return _urlIncludesFMSApplicationInstance; } public function set urlIncludesFMSApplicationInstance(value:Boolean):void { _urlIncludesFMSApplicationInstance = value; } private var _streamType:String; // StreamType private var _clipStartTime:Number; private var _clipEndTime:Number; private var _connectionArguments:Vector.; private var _drmContentData:ByteArray; private var _urlIncludesFMSApplicationInstance:Boolean = false; } }