<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Almer/Blank Labs &#187; Code &amp; Samples</title>
	<atom:link href="http://labs.almerblank.com/category/code-samples/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.almerblank.com</link>
	<description>Blog of the Talent at Almer/Blank</description>
	<lastBuildDate>Mon, 19 Jul 2010 22:55:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Four New OSMF Adobe Cookbook Recipes</title>
		<link>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/</link>
		<comments>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 22:55:23 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1533</guid>
		<description><![CDATA[Evenin&#039; all:
I posted four new OSMF recipes on Adobe&#039;s cookbook site this afternoon, and thought you might care to see &#039;em:
Playing Multiple Pieces of Media, Consecutively, with the OSMF ParallelElement
Playing Multiple Pieces of Media, Concurrently, with the OSMF ParallelElement
Dynamic Streaming with OSMF
HTTP Streaming in OSMF
And, as a reminder along these lines, I&#039;m teaching this year [...]]]></description>
			<content:encoded><![CDATA[<p>Evenin&#039; all:</p>
<p>I posted four new OSMF recipes on Adobe&#039;s cookbook site this afternoon, and thought you might care to see &#039;em:</p>
<p><a href="http://cookbooks.adobe.com/post_Playing_Multiple_Pieces_of_Media__Consecutively__w-17642.html">Playing Multiple Pieces of Media, Consecutively, with the OSMF ParallelElement</a><br />
<a href="http://cookbooks.adobe.com/post_Playing_Multiple_Pieces_of_Media__Concurrently__wi-17640.html">Playing Multiple Pieces of Media, Concurrently, with the OSMF ParallelElement</a><br />
<a href="http://cookbooks.adobe.com/post_Dynamic_Streaming_with_OSMF-17638.html">Dynamic Streaming with OSMF</a><br />
<a href="http://cookbooks.adobe.com/post_HTTP_Streaming_in_OSMF-17636.html">HTTP Streaming in OSMF</a></p>
<p>And, as a reminder along these lines, I&#039;m teaching this year at MAX, as a MAX Master, on &#039;Designing Custom Video Players with OSMF&#039; (you can <a href="http://max.adobe.com/sessions/catalog/" target="_blank">browse the catalog of talks and presentations</a> and then you can <a href="http://max.adobe.com/register" target="_blank">register here</a>).</p>
<p>Share and enjoy!</p>
<p>-r<span id="more-1533"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSMF Sample Player Update for 1.0</title>
		<link>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/</link>
		<comments>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 02:31:37 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[adob]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1518</guid>
		<description><![CDATA[I&#039;ve finally started work on my OSMF lab for MAX, &#039;Designing Custom Video Players with OSMF&#039; (you can browse the catalog of talks and presentations and then you can register here).
As you may know, OSMF 1.0 has been release, so one of the first tasks I set for myself was to test the code I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve finally started work on my OSMF lab for MAX, &#039;Designing Custom Video Players with OSMF&#039; (you can <a href="http://max.adobe.com/sessions/catalog/" target="_blank">browse the catalog of talks and presentations</a> and then you can <a href="http://max.adobe.com/register" target="_blank">register here</a>).</p>
<p>As you may know, OSMF 1.0 has been release, so one of the first tasks I set for myself was to test the code I wrote in April for OSMF 0.95 (which I posted, along with the screencasts of my talk at FITC, <a href="http://labs.almerblank.com/2010/04/new-intro-to-adobe-osmf-videos/">here</a>). And, lo and behold, all of them worked!</p>
<p>Well, all except one. The final demo file, the <cite>Full Sample Player</cite> was playing, but the video was invisible and all the controls were disabled. So I set out to figure out why. (For those who don&#039;t want to read to the end, you can <a href="http://labs.almerblank.com/wp-content/uploads/2010/07/Full-Basic-Player-Update_20100705.zip">download the updated project file, for Flash CS5, here</a>.)</p>
<p><span id="more-1518"></span>It wasn&#039;t long before I found the culprit. It turns out that the MediaPlayer in OSMF now dispatches the &#039;ready&#039; MediaPlayerStateChangeEvent when the video is ready to play for the first time &#8212; not just when it&#039;s ready to play again. So, the result of my last code sample, with OSMF 1.0, was to hide the video and disable the controls &#8212; at the start of the video playback! Not what I wanted.</p>
<p>So, if we just remove lines 157 and 158 (seen below), from the _onMediaPlayerStateChange function, the player will work.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">case</span> <span style="color: #ff0000;">&quot;ready&quot;</span>:
	_disableControls <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	_cleanUpVideo <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	<span style="color: #b1b100;">break</span>;</pre></div></div>

<p>But now, when our video ends, the video doesn&#039;t get reset (or &#039;cleaned up&#039; or however you want to say it) &#8212; it looks ugly and doesn&#039;t behave how we would expect (because we just removed the code that&#039;s supposed to clean up these videos).</p>
<p>So, how do we clean up at the end of a video? Well, you can now listen for the TimeEvent.COMPLETE event on the MediaPlayer instance &#8212; when it&#039;s fired, the playback of your media is done.</p>
<p>So, if we add this line to the _setupOSMF() function:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">_mediaPlayer.<span style="color: #006600;">addEventListener</span> <span style="color: #66cc66;">&#40;</span> TimeEvent.<span style="color: #006600;">COMPLETE</span> , _onComplete , <span style="color: #000000; font-weight: bold;">false</span> , <span style="color: #cc66cc;">0</span> , <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span> ;</pre></div></div>

<p>&#8230;and then declare the _onComplete function, adding back in those two lines we removed from the _onMediaPlayerStateChange function:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _onComplete <span style="color: #66cc66;">&#40;</span> evt : TimeEvent <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	_disableControls <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	_cleanUpVideo <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>One final note&#8230; Adobe added in string constants for all of the MediaPlayerStateChangeEvent types, grouped in the new MediaPlayerState class. So instead of comparing against the string, &#034;ready&#034;, you can now compare against the string constant of MediaPlayerState.READY. All of them are listed <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/org/osmf/media/MediaPlayerState.html" target="_blank">here</a> and have been included in the <a href="http://labs.almerblank.com/wp-content/uploads/2010/07/Full-Basic-Player-Update_20100705.zip">updated source files that accompany this post</a>.</p>
<p>See you in October at MAX in LA!</p>
<p>And, as always, share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Intro to Adobe OSMF Videos</title>
		<link>http://labs.almerblank.com/2010/04/new-intro-to-adobe-osmf-videos/</link>
		<comments>http://labs.almerblank.com/2010/04/new-intro-to-adobe-osmf-videos/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 04:30:06 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash cs4]]></category>
		<category><![CDATA[flash cs5]]></category>
		<category><![CDATA[flash media server]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[Open Source Media Framework]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1425</guid>
		<description><![CDATA[I tried to record my &#039;Standardize Your Flash with Adobe OSMF&#039; talk from FITC Toronto &#8212; and, lo and behold, it actually seems to have worked.
So I edited it down a bit (cutting out the Q&#38;A, which unfortunately was not audible on my microphone), chopped the sections down into individual videos, and posted them to [...]]]></description>
			<content:encoded><![CDATA[<p>I tried to record my &#039;<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&amp;presentation_id=1159" target="_talk">Standardize Your Flash with Adobe OSMF</a>&#039; talk from <a href="http://fitc.ca/toronto" target="_blank">FITC Toronto</a> &#8212; and, lo and behold, it actually seems to have worked.</p>
<p>So I edited it down a bit (cutting out the Q&amp;A, which unfortunately was not audible on my microphone), chopped the sections down into individual videos, and posted them to YouTube. I thought it might be a good reference if I embedded all of them in a single post, along with the source code you&#039;ll want for each lesson if you wish to follow along in Flash CS4 or CS5.</p>
<p>In this talk, I cover:<br />
- what is OSMF<br />
- OSMF capabilities<br />
- The basic structure of an OSMF player, including the MediaElement, MediaPlayer and MediaComposition<br />
- Dynamic Streaming (the files for that video also include HTTP Streaming)<br />
- Subclipping<br />
- The key MediaPlayer properties and events required to build a media player</p>
<p><span id="more-1425"></span></p>
<p>The talk and these files all use OSMF 0.9 from Sprint 10, which you can <a href="http://download.macromedia.com/pub/opensource/osmf/osmf_source_s093.zip" target="_blank">download here</a>.</p>
<h3>The Slides</h3>
<div id="__ss_3910236" style="width: 425px;"><object id="__sse3910236" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=standardizeyourflash20100427alive-100429224617-phpapp01&amp;stripped_title=standardize-your-flash-with-adobe-osmf-09" /><param name="name" value="__sse3910236" /><param name="allowfullscreen" value="true" /><embed id="__sse3910236" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=standardizeyourflash20100427alive-100429224617-phpapp01&amp;stripped_title=standardize-your-flash-with-adobe-osmf-09" name="__sse3910236" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<h3>Part 1: Overview of Adobe OSMF</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/KiPqaq-5kPg&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/KiPqaq-5kPg&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Part 2: Getting Started with OSMF in Adobe Flash</h3>
<p><span><em><a href="http://www.rblank.com/rfiles/osmf/toronto2010talk/SimpleBasicPlayer.zip">download the files to accompany this video</a></em></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/JwO7-xYG_t0&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/JwO7-xYG_t0&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Part 3: Dynamic Streaming with Adobe OSMF</h3>
<p><span><em><a href="http://www.rblank.com/rfiles/osmf/toronto2010talk/DynamicStreaming.zip">download the files to accompany this video</a></em></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/tEbiJ5OfMcQ&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/tEbiJ5OfMcQ&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Part 4: Composite Elements in Adobe OSMF</h3>
<p><span><em><a href="http://www.rblank.com/rfiles/osmf/toronto2010talk/CompositeElements.zip">download the files to accompany this video</a></em></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/DIOOoMrOiMs&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/DIOOoMrOiMs&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Part 5: Subclipping</h3>
<p><span><em><a href="http://www.rblank.com/rfiles/osmf/toronto2010talk/Subclipping.zip">download the files to accompany this video</a></em></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/pTncFKS8SwE&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/pTncFKS8SwE&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Part 6: Key MediaPlayer Properties And Events in OSMF</h3>
<p><span><em><a href="http://www.rblank.com/rfiles/osmf/toronto2010talk/FullBasicPlayer.zip">download the files to accompany this video</a></em></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/vUGZmzoEcag&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/vUGZmzoEcag&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/04/new-intro-to-adobe-osmf-videos/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Illustrator CS5 to Flex4, so simple.</title>
		<link>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/</link>
		<comments>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 18:05:11 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[cs5]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1398</guid>
		<description><![CDATA[While I was doing some work this morning on a Flex4 application I found a pretty neat way of integrating Illustrator CS5 assets into Flex 4 with relative ease using FXG 2.0.  I haven&#039;t tested this method using other versions of FXG, but using 2.0 works great.
For my example, I used the tiger SVG [...]]]></description>
			<content:encoded><![CDATA[<p>While I was doing some work this morning on a Flex4 application I found a pretty neat way of integrating Illustrator CS5 assets into Flex 4 with relative ease using FXG 2.0.  I haven&#039;t tested this method using other versions of FXG, but using 2.0 works great.<span id="more-1398"></span></p>
<p>For my example, I used the tiger SVG file that I always see in SVG posts to create some vector art in Illustrator.  After opening the SVG I simply saved it as an FXG 2.0 file using the Save As menu.  In the FXG options I just used the default options.<br />
<img class="alignnone" title="FXG Options" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.33.55-AM.png" alt="" width="653" height="566" /></p>
<p>After saving the FXG file, I placed the file in my src folders in a Flex 4 project in Flash Builder 4.  I made a skins package to drop the file in.<br />
<img class="alignnone" title="FXG File Placement" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.51.18-AM.png" alt="" width="292" height="306" /></p>
<p>Once you drop your FXG file into your project, using the file is a breeze.  Just write the tag in!<br />
<img class="alignnone" title="Using FXG in Flex 4" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-11.05.41-AM.png" alt="" width="608" height="262" /></p>
<p>It really is as simple as that.  Using this method you can use these FXG files very easily in any of your Spark skins.  Here&#039;s the rendered FXG:<br />
<img class="alignnone" title="FXG rendered in Flex 4" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.38.57-AM.png" alt="" width="956" height="612" /></p>
<p>Once you have your fxg graphics rendering, you can manipulate the object using width, height, alpha, etc and the graphics will scale as you&#039;d expect from vector graphics.<br />
<img class="alignnone" title="Altered FXG at runtime" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.39.34-AM.png" alt="" width="1360" height="858" /></p>
<p>Download Flash Builder 4 project file here: <a href="http://laflash.org/wp-content/uploads/2010/04/FXGinFlex4.fxp">Example Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Streaming in OSMF 10</title>
		<link>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/</link>
		<comments>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 00:50:05 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1394</guid>
		<description><![CDATA[I'm writing some new sample files for OSMF in preparation for my presentation, '<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&#038;presentation_id=1159">Standardize Your Flash with Adobe OSMF</a>,' which I'll be giving on April 27th at <a href="http://fitc.ca/toronto">FITC Toronto</a>.
...
So, since I wrote it as one of the sample files for my talk, I figured I would post the code to run dynamic streaming with OSMF v0.93.

[...]
]]></description>
			<content:encoded><![CDATA[<p>I&#039;m writing some new sample files for OSMF in preparation for my presentation, &#039;<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&#038;presentation_id=1159">Standardize Your Flash with Adobe OSMF</a>,&#039; which I&#039;ll be giving on April 27th at <a href="http://fitc.ca/toronto">FITC Toronto</a>.</p>
<p>Last time I checked (February), OSMF was in Sprint 9 (and I updated my sample files at that time, <a href="http://www.rblank.com/2010/02/04/osmf-0-9-updated-flash-cs4-sample/">posted here</a>). Now, it&#039;s in Sprint 10, specifically version 0.93. And Adobe appears to have done a lot to lock down the API, which is definitely an exciting and positive development.</p>
<p>But, of course, there are some significant changes since the Sprint 9 OSMF framework &#8212; so even the files I posted just two months ago are no longer valid. So, since I wrote it as one of the sample files for my talk, I figured I would post the code to run dynamic streaming with OSMF v0.93.</p>
<p>Here is a Flash CS4 document class, assuming you already have your OSMF SWC in your library path.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package 
<span style="color: #66cc66;">&#123;</span> 
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>; 
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">media</span>.<span style="color: #006600;">MediaPlayer</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">containers</span>.<span style="color: #006600;">MediaContainer</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">media</span>.<span style="color: #006600;">URLResource</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">NetLoader</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">elements</span>.<span style="color: #006600;">VideoElement</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">utils</span>.<span style="color: #0066CC;">URL</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">DynamicStreamingResource</span> ;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">DynamicStreamingItem</span> ;
&nbsp;
    <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyPlayer <span style="color: #0066CC;">extends</span> Sprite 
    <span style="color: #66cc66;">&#123;</span> 
&nbsp;
		<span style="color: #0066CC;">private</span> const RTMP_URL : <span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;rtmp://myhost&quot;</span> ;
&nbsp;
        <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MyPlayer<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> 
        <span style="color: #66cc66;">&#123;</span> 
			player = <span style="color: #000000; font-weight: bold;">new</span> MediaPlayer <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
			container = <span style="color: #000000; font-weight: bold;">new</span> MediaContainer <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
			addChild <span style="color: #66cc66;">&#40;</span> container <span style="color: #66cc66;">&#41;</span> ;
			<span style="color: #808080; font-style: italic;">//set the player to play videos only once by default</span>
			player.<span style="color: #006600;">autoRewind</span>=<span style="color: #000000; font-weight: bold;">false</span>;
			<span style="color: #000000; font-weight: bold;">var</span> resource : DynamicStreamingResource = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingResource <span style="color: #66cc66;">&#40;</span> RTMP_URL <span style="color: #66cc66;">&#41;</span> ;
			<span style="color: #000000; font-weight: bold;">var</span> vector : Vector.<span style="color: #66cc66;">&lt;</span>DynamicStreamingItem<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>DynamicStreamingItem<span style="color: #66cc66;">&gt;</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">3</span> <span style="color: #66cc66;">&#41;</span> ;
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_high&quot;</span> , <span style="color: #cc66cc;">1500</span> <span style="color: #66cc66;">&#41;</span> ; 
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_low&quot;</span> , <span style="color: #cc66cc;">400</span> <span style="color: #66cc66;">&#41;</span> ; 
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_medium&quot;</span> , <span style="color: #cc66cc;">600</span> <span style="color: #66cc66;">&#41;</span> ; 
			resource.<span style="color: #006600;">streamItems</span> = vector ;
			videoElement = <span style="color: #000000; font-weight: bold;">new</span> VideoElement<span style="color: #66cc66;">&#40;</span> resource <span style="color: #66cc66;">&#41;</span> ;
			player.<span style="color: #006600;">media</span> = videoElement ;
			container.<span style="color: #006600;">addMediaElement</span> <span style="color: #66cc66;">&#40;</span> videoElement <span style="color: #66cc66;">&#41;</span> ;
        <span style="color: #66cc66;">&#125;</span> 
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> player:MediaPlayer;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> container:MediaContainer;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> videoElement : VideoElement ;
&nbsp;
    <span style="color: #66cc66;">&#125;</span> 
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZamfBrowser 1.2 and ZendAmfServiceBrowser Update</title>
		<link>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/</link>
		<comments>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 21:58:42 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Zamf]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[ZendAMF]]></category>
		<category><![CDATA[ZendAMF Service Browser]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1321</guid>
		<description><![CDATA[Over the weekend I updated both the ZamfBrowser application and the ZendAmfServiceBrowser class that gives the ZamfBrowser information about your ZendAMF services set up.  The ZendAmfServiceBrowser class now supports using the Zend_Amf_Server-&#62;addDirectory() method.  I also integrated some optimization suggestions submitted by Marijn Huizendveld.  Thanks for your contributions Marijn!  ZamfBrowser got updates to fix all the [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I updated both the ZamfBrowser application and the ZendAmfServiceBrowser class that gives the ZamfBrowser information about your ZendAMF services set up.  <span id="more-1321"></span>The ZendAmfServiceBrowser class now supports using the Zend_Amf_Server-&gt;addDirectory() method.  I also integrated some optimization suggestions submitted by Marijn Huizendveld.  Thanks for your contributions Marijn!  ZamfBrowser got updates to fix all the currently reported bugs.  You can get more info about what exactly was updated, as well as download the source, at http://zamfbrowser.riaforge.com.  Info on the ZendAmfServiceBrowser class update can be found at http://www.zamfbrowser.org</p>
<p>If you have suggestions for enhancements or more bug fixes please do report them at http://zamfbrowser.riaforge.com  If you don&#039;t want to sign up for RIAForge just send me an email to omar@almerblank.com, I&#039;d really like to hear your suggestions and bug reports!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSMF Sample Player Update</title>
		<link>http://labs.almerblank.com/2010/02/osmf-sample-player-update/</link>
		<comments>http://labs.almerblank.com/2010/02/osmf-sample-player-update/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:36:05 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[OSMF]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1317</guid>
		<description><![CDATA[Some of you may have checked out the courses I posted over on the Adobe Developer Connection on building <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">progressive</a> and <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">streaming video players</a> with the Adobe Open Source Media Framework (OSMF).

Unfortunately, even those courses are relatively new, the code in them no longer works, because OSMF has advanced a few sprints. We're now at OSMF sprint 9, and the framework continues to shift quite a bit.

Because there are almost no examples on the web of using OSMF with Flash (as opposed to Flex), and I've had several people email me asking if I had time to update the code.

And, so, finally I did. At least for the progressive player. So you can download the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf/osmf9_progressive_players_cs4.zip" target="_blank">Flash CS4 source code to build an OSMF player with the Sprint 9 framework</a> from the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">article on Building progressive video players in Flash with OSMF</a>.

Share and enjoy!

]]></description>
			<content:encoded><![CDATA[<p>Some of you may have checked out the courses I posted over on the Adobe Developer Connection on building <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">progressive</a> and <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">streaming video players</a> with the Adobe Open Source Media Framework (OSMF).</p>
<p>Unfortunately, even those courses are relatively new, the code in them no longer works, because OSMF has advanced a few sprints. We&#039;re now at OSMF sprint 9, and the framework continues to shift quite a bit.</p>
<p>Because there are almost no examples on the web of using OSMF with Flash (as opposed to Flex), and I&#039;ve had several people email me asking if I had time to update the code.</p>
<p>And, so, finally I did. At least for the progressive player. So you can download the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf/osmf9_progressive_players_cs4.zip" target="_blank">Flash CS4 source code to build an OSMF player with the Sprint 9 framework</a> from the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">article on Building progressive video players in Flash with OSMF</a>.</p>
<p>Share and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/02/osmf-sample-player-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-bitrate Streaming in Adobe OSMF</title>
		<link>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/</link>
		<comments>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 19:31:53 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1299</guid>
		<description><![CDATA[My new online video course on Dynamic Multi-bitrate Streaming with Adobe Open Source Media Framework (OSMF) has just gone live on Adobe Developer Connection.
It&#039;s 35 minutes across five lessons and takes you through the process of converting the progressive OSMF video player (which we create in the first installment of this course on Building Progressive [...]]]></description>
			<content:encoded><![CDATA[<p>My new online video <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">course on Dynamic Multi-bitrate Streaming with Adobe Open Source Media Framework</a> (OSMF) has just gone live on Adobe Developer Connection.</p>
<p>It&#039;s 35 minutes across five lessons and takes you through the process of converting the progressive OSMF video player (which we create in the first installment of this course on <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">Building Progressive Video Players with Adobe OSMF</a>, into a dynamic multi-bitrate streaming player. Multi-bitrate streaming occurs when you program your Flash to deliver the highest quality video a viewer can see (dependent on their bandwidth). *<strong>Dynamic</strong>* multi-bitrate streaming is similar, with the additional feature of having your player constantly meters the bandwidth throughout viewing, to adjust the playback between multiple videos seamlessly, as the viewer&#039;s bandwidth may fluctuate.<span id="more-1299"></span></p>
<blockquote><p><strong>Please note:</strong> that the first course on progressive video players was built with OSMF Sprint 5. The second course on streaming with OSMF was built with OSMF Sprint 7. I spend the first lesson of the new course updating the progressive player to work with Sprint 7, and I wrote a few notes about <a href="http://www.rblank.com/2009/11/10/quick-note-on-osmf-0-7/" target="_blank">the major differences between OSMF 0.5 and 0.7 in a post on my personal blog</a> last month. Also note that, by the time the course was published by Adobe, OSMF had already moved forward to Spring 8.</p></blockquote>
<p>When I wrote the first course on building a progressive video player with OSMF, I was struck by two things:<br />
1) OSMF is clean &#8212; really clean &#8212; and it just works well in ways that the AS3 video API does not &#8212; for instance, with OSMF setting volume is a matter of talking to the volume property of the MediaPlayer<br />
2) OSMF felt like a bit of overkill &#8212; you need a lot of imports and classes (a MediaPlayer, a MediaElement, a NetLoader and a URLResource) just to build the simplest of progressive video players &#8212; that would be simple enough, requiring seven lines of code with raw AS3 if you knew it</p>
<p>But, I had a hunch that #2 above was due to the fact that I was using approximately 0.05% of this powerful framework &#8212; like trying to use a nuclear bomb when a shovel would do just fine.</p>
<p>Well, when I started learning how to write the code to build dynamic multi-bitrate streaming player, I quickly learned that my hunch was right. The benefits of OSMF really kick in once you do anything beyond the most basic video player.</p>
<p>In the case of streaming, to convert your progressive OSMF video player to a streaming OSMF video player, all you do is change the URL! Seriously, that&#039;s it. OSMF is smart enough to know that when you try to load a video from an RTMP server, you&#039;re trying to stream &#8212; and it takes care of the rest.</p>
<p>That was pretty neat. But the benefits really kicked in when I beefed my regular streaming OSMF video player to one that supports dynamic multi-bitrate streaming. All it took was just a few extra lines of code to turn my regular video player into one that supports dynamic multi-bitrate streaming. If you want to learn those lines of code, I&#039;d recommend checking out the course.</p>
<p>As I say, I&#039;m still just barely cracking the surface of OSMF, and I&#039;m really looking forward to digging deeper into its support for layouts, playlists and monetization. But, even with this second course, the massive time, workflow and standardization features of OSMF are already revealing themselves.</p>
<p>Share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZamfBrowser 1.1</title>
		<link>http://labs.almerblank.com/2009/11/zamfbrowser-1-1/</link>
		<comments>http://labs.almerblank.com/2009/11/zamfbrowser-1-1/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 22:50:21 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[code examples]]></category>
		<category><![CDATA[code generator]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[stub]]></category>
		<category><![CDATA[stub code]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Zamf]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZendAMF]]></category>
		<category><![CDATA[ZendAMF Service Browser]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1275</guid>
		<description><![CDATA[Just posted an update to ZamfBrowser.  ZamfBrowser can now generate code for use in either Flash or Flex based projects.  Simply point ZamfBrowser to the source path folder where your code is, the &#034;com&#034; folder.  Then enter the package you would like the services in, for example &#034;com.project.services&#034;.  ZamfBrowser will create a methods package and [...]]]></description>
			<content:encoded><![CDATA[<p>Just posted an update to ZamfBrowser.  ZamfBrowser can now generate code for use in either Flash or Flex based projects.  <span id="more-1275"></span>Simply point ZamfBrowser to the source path folder where your code is, the &#034;com&#034; folder.  Then enter the package you would like the services in, for example &#034;com.project.services&#034;.  ZamfBrowser will create a methods package and a classes package within the services package you specify.  The classes in the &#034;classes&#034; package reflect the AMF services on the backend.  Service calls can also be made by starting a method object by itself from the classes in the &#034;methods&#034; package.  The Flex package uses the same class that ZamfBrowser uses to unit test methods.  The Flash package has been lightly tested.  As bugs come up please post them to the site http://zamfbrowser.riaforge.org   Usage examples will follow soon at http://labs.almerblank.com</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2009/11/zamfbrowser-1-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ZamfBrowser 1.0 &#8211; ZendAMF Service Browser</title>
		<link>http://labs.almerblank.com/2009/11/zamfbrowser-1-0-zendamf-service-browser/</link>
		<comments>http://labs.almerblank.com/2009/11/zamfbrowser-1-0-zendamf-service-browser/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 02:46:08 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Service Browser]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Zamf]]></category>
		<category><![CDATA[ZamfBrowser]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZendAMF]]></category>
		<category><![CDATA[ZendAMF Service Browser]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1265</guid>
		<description><![CDATA[ZamfBrowser is a ZendAMF Service Browser, like the AMFPHP Service Browser, which lets a developer unit test ZendAMF services.  I posted this project today for download on RIAForge at http://zamfbrowser.riaforge.com.  There is a demo of a ZendAMF implementation with ZamfBrowser implemented available at the site at http://www.zamfbrowser.org.  You can also download the demo source files [...]]]></description>
			<content:encoded><![CDATA[<p>ZamfBrowser is a ZendAMF Service Browser, like the AMFPHP Service Browser, which lets a developer unit test ZendAMF services.  I posted this project today for download on RIAForge at <a title="http://zamfbrowser.riaforge.com" href="http://zamfbrowser.riaforge.com" target="_blank">http://zamfbrowser.riaforge.com</a>.  <span id="more-1265"></span>There is a demo of a ZendAMF implementation with ZamfBrowser implemented available at the site at <a title="ZamfBrowser Home Page" href="http://www.zamfbrowser.org" target="_blank">http://www.zamfbrowser.org</a>.  You can also download the demo source files <a title="ZamfBrowser Demo Download" href="http://www.zamfbrowser.org/files/ZamfDemo.zip" target="_blank">here</a>.  I posted a walk-through on the documentation page.  Hopefully its written clear enough to understand, if not I&#039;ll be glad to answer any questions.</p>
<p><a href="http://labs.almerblank.com/wp-content/uploads/2009/11/nine.png"><img class="alignnone size-full wp-image-1266" title="nine" src="http://labs.almerblank.com/wp-content/uploads/2009/11/nine.png" alt="nine" width="1040" height="702" /></a></p>
<p>I plan on adding some AS3 service class export functionality next for Flash and Flex applications. The other big feature I want to add soon is strong type support, to test and see strongly typed objects.</p>
<p>On my server if you directly hit the http://www.zamfbrowser.org/zamf_demo/gateway.php file, the file downloads.  I believe it has something to do with the AMF response header and the server settings.  I&#039;m just not certain on that  yet.  The gateway does work with an AMF client though.  Also, if you have a gateway named something like this:  http://www.server.com/api/index.php, you can use http://www.server.com/api/, but if you leave out the trailing slash the browser does not load the gateway properly.  I&#039;m trying to track that issue down.</p>
<p>Hopefully this is as helpful to some as it&#039;s been for me in the first couple of days! =)</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2009/11/zamfbrowser-1-0-zendamf-service-browser/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
