Troubleshooting SWF Loading Issues in Chrome - MIME Type Issue With S3

As some of you may already know, I run and maintain a few of my own products, the most popular of which being Scribblar which pushes hundreds of sessions every day.

Recently I started getting reports from users that the main page which hosts the applications' main SWF file was not loading properly, or it would work in one browser but not another. Within the handful of reports I had, Google Chrome appeared to be the browser that posed most of the issues - this seemed odd as Chrome effectively has Flash Player built-in and always auto-updates to the latest release version which is why I recommend it as the preferred browser to anyone who asks.

My first look was towards SWFObject - I figured that maybe something in Chrome had changed and broken the Flash Player detection. A common trap that some developers fall into is to check for specific Flash Player versions, for example only allowing access to Player 11 or below, which then locks users out once Player 11.5 (or similar) is released. But this wasn't the issue here.

After much more digging and more back-and-forth emails with some users I noticed a very odd behaviour when trying to access my SWF directly (without an HTML wrapper) in Chrome. This image shows the request in the Chrome Debugger.
Chrome Debug Output
Notice how the shows as 'canceled', and that the content type is coming up as the generic binary/octet-stream? Clearly this pointed towards Chrome not being able to deal with a wrongly set MIME type correctly, whereas other browser may have handled this is a more flexible way.

[Read Full Article]

Accessing the mx_internal Namespace in Flex

This is a topic that comes up from time to time, and it did so for me on a current project so I thought to quickly sum it up again here.
I was working on a Flex project using an old SDK (4.1) and the OSMF-based Spark VideoPlayer component contained within. I had to use this particular player since the customer needed to target Flash Player 10.0 or above.

I'm unsure which version of OSMF this Flex SDK contained, but what I could see was there seemed to be no obvious way to set the bufferTime on the MediaPlayer instance that's contained within the VideoDisplay instance that's contained within the VideoPlayer due to the fact that the MediaPlayer instance was namespaced to mx_internal

view plain print about
1mx_internal var videoPlayer:MediaPlayer;

What does this namespace mean? It basically is Adobe's way of saying: "Watch out, this stuff right here is likely to change in a future version (of OSMF in this case) and if you mess with it then it may break in the future."

Well in my case it was worth the risk :-) and here's how you'd access the bufferTime property and use the mx_internal namespace.
At the end of all your import statement add this:

view plain print about
1import mx.core.mx_internal;
2use namespace mx_internal;

Then somewhere else in your code you can do this (where player is my instance of s:VideoPlayer):

view plain print about
1player.videoDisplay.mx_internal::videoPlayer.bufferTime = 0.1;

Suck this up and enjoy :-)

FMS/Wowza/Red5 Broadcaster App For Android

As one of the main contributors to the Red5 project, Paul Gregoire is a well known name in the community. Yesterday he posted a link to an AIR for Android app he built to the Flash Media List and I'm republishing his link here as I think many of you will find this app quite useful.

The Broadcaster Android app allows you to broadcast audio and video to an RTMP server such as Red5, and also works with FMS and Wowza. What's more, the app is free and will run on pretty much any Android device with Android 2.2 and up.

You can download the Broadcaster app from the Android Market.

But apart from being useful, the app also shows that AIR for Android can be quite versatile and allows you to easily publish what is essentially a Flex application to a mobile platform.

2012 - Onwards And Upwards

As 2011 is drawing to a close (seriously, where has this year gone?) I think it's time for a quick look forward.

It's been a turbulent year, especially for the Flash Platform. We have some ups, and definitely some downs, and at times it felt as if our beloved community was imploding. Some folks have moved on and are quite likely never to return - 'sinking ship' comes to mind. Whilst I'm not the captain of that particular ship, I certainly hold the rudder for my own little boat and despite what Adobe may want us to believe it is clear to everyone that Flash has had its peak. I feel a bit sad about that, and it's not really because of the technology but because of the aforementioned community; I just don't feel that I'll find the same mix of creativity, problem solving and 'thinking outside the box' spirit elsewhere. The Flash community has been and still is one of a kind and I hope it will stay that way in 2012 and beyond.

In terms of new technologies to pick up next year there are plenty to choose from. Too many almost, and I for one feel a bit overwhelmed at times. I have a feeling I am not alone.

[Read Full Article]

Thoughts On Flash - Revisited

Thanks to @bryngfors for pointing out what we all suspected all along: Apple is all talk and little action when it comes to supporting open standards. Prime example: visit trailers.apple.com without the QuickTime plugin installed and you see... not much in form of video. A plugin. On Apple's website? Good grief.

Now I'm not particularly bothered about browser plugins - I am after all of Flash heritage - but what bothers me is dishonesty. I mean come on, it's almost 2012 and even I as a seasoned Flash developer can tell you that it is possible to serve up web video these days without plugins. Isn't that what Steve Jobs told us? Remember the 'Thoughts on Flash'?

"We strongly believe that all standards pertaining to the web should be open."

Hmm, either QuickTime is open (hint: it isn't), or it's not a standard (that's my guess) or it's not pertaining to the web.

Here's another gem: "When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple's Safari and Google's Chrome without any plugins whatsoever [...]."

Let's put the fact that most Flash video is already encoded in H.264 aside - what's changed since April 2010 when Steve Jobs wrote those words? Adobe seems to have moved with the times quite substantially and are re-focusing efforts on open standards - but is Apple doing the same? If so, then why are they trying to prevent progress by teaming up with patent trolls? How come the W3C has an axe to grind with Apple?

Come on Apple, you can do better. I really want to like you more, but you don't make it easy.

Hacking FCSubscribe Support Around OSMF

Recently I had the task of recreating a video player for a customer for which no source code was available. The player needed to support on demand and live streaming, so I opted for an OSMF based player - why reinvent the wheel?

Things went well until the time came to add the live streaming support. The chosen CDN uses the FCSubscribe method for live streaming. In case you don't know, FCSubscribe is a serverside method which the player needs to call in order to instruct the CDN to deliver the requested stream to the edge server that you are connected to in order to play the stream.
Some CDNs (including Akamai and Limelight) provide custom OSMF plugins for this task, and if your CDN does the same then you have nothing else to do apart from using their plugin and you are set. However some CDNs do not (yet) provide such plugins, and since the task of creating one is no mean feat (and it was certainly not part of the budget for the player I was working on), another solution had to be found.

[Read Full Article]

FMS Bandwidth Tester App Works Again

I've just fixed the (now ancient) FMS bandwidth tester. It's based on some pretty old code by Adobe engineer Pritham Shetty and wasn't working since I rebranded the blog - well now it's functional again and I plan to connect it to a new server soon.

The neat thing about this FMS app is that it checks bandwidth both to and from the server - this is very useful if you build RTC based apps that utilise things such as webcam video or live audio.
If right now the speed results seem low then that's probably due to the very old machine I'm using to host the app... Believe it or not, the server is still the same one from back in 2005!

FMS bandwidth tester

Fundamentals for Great jQuery Development

I've recently stumbled across the following video by Damian Edwards of Microsoft. He gives a good intro to the intricacies of JavaScript, covering things like scope and closures before giving a great overview of JQuery. Definitely worth a watch.

If you are looking for a slightly more in-depth intro to jQuery then you could do a lot worse than sitting through Ray Camden's 'Introduction to jQuery' Udemy course which is a steal at only $20.

PayPal's Dubious Business Practices

Over the years I've had many encounters with PayPal. I use their service to process payments from my products and services, especially for international customers. PayPal is well known for its dubious business practices, seemingly freezing accounts at random without notice, leaving small businesses stranded and their money held hostage.

This morning the company may have overstepped the line when they froze the account of Regretsy, a site which was running a massive Christmas gift exchange program for children in their community.
What did PayPal do? They decided to shut their entire operation down and insisted that buyers are refunded, stating that it was ok to raise money for cats but not for children. It beggars belief.

Please check out the conversation the Regretsy site owner Helen Killer had with a PayPal employee. Then ask yourself: is PayPal a company you want to do business with in the future? I know I will reconsider, and have already started to offer Google Checkout and Amazon Payments to my customers.

In the meantime PayPal seemed to have been busy deleting comments on its Facebook wall - with limited results. Check out the comments on the latest posts made by Paypal: hundreds of angry customers venting their views.

PayPal: shame on you!

Forum Posts Resurrected

Due to several enquiries I've had over the last few weeks I have decided to put the old FlashComGuru forum back online for reference pirposes. It can be found at forum.therealtimeweb.com (or http://www.therealtimeweb.com/forum) and has been put there for reference purposes only. I have no plans to enable new signups again but would encourage people to sign up to this site's mailing list instead.

More Entries