﻿<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (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.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<s:Application
    width="1000" height="1000"
	xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:mx="library://ns.adobe.com/flex/mx"
    xmlns:s="library://ns.adobe.com/flex/spark"
    backgroundColor="0xFFFFFF">

	<fx:Style source="EmbeddedFonts.css"/>

	<fx:Script>
        <![CDATA[

        [Bindable]
        public var progressiveVid:String = 'http://helpexamples.com/flash/video/cuepoints.flv';

        [Bindable]
        public var progressiveVid2:String = 'http://helpexamples.com/flash/video/water.flv';

        [Bindable]
        public var progressiveVid3:String = 'http://hdgallery.adobe.com/media/SpaceAlone_480.flv';

        [Bindable]
        public var GreenBoxVid:String = 'video/GreenBox.flv';


        ]]>
    </fx:Script>

    <fx:Declarations>
		<s:DynamicStreamingVideoSource id="streamingVid" host="rtmp://10.59.8.148/vod/">
		    <s:DynamicStreamingVideoItem streamName="mp4:sample1_150kbps.f4v"/>
		</s:DynamicStreamingVideoSource>
		<s:DynamicStreamingVideoSource id="streamingVid2" host="rtmp://10.59.8.148/vod/">
		    <s:DynamicStreamingVideoItem streamName="mp4:sample1_500kbps.f4v"/>
		</s:DynamicStreamingVideoSource>
		<s:DynamicStreamingVideoSource id="badStream" host="rtmp://fmsexamples.adobe.com/vod/" streamType="recorded">
		    <s:DynamicStreamingVideoItem streamName="mp4:_cs4promozzz_1000.f4v" />
		</s:DynamicStreamingVideoSource>
		<s:DynamicStreamingVideoSource id="GreenBoxVidStream" host="rtmp://10.59.8.148/vod/">
		    <s:DynamicStreamingVideoItem streamName="GreenBoxStream" />
		</s:DynamicStreamingVideoSource>
    </fx:Declarations>


    <s:VideoPlayer id="testPlayer"/>

</s:Application>
