I was all excited about the release of AIR 2 beta yesterday, with the new
socket support and improved h.264 encoding I was looking forward to
upgrading some applications . So I went and upgraded one of my larger
applications to AIR 2 to start the porting process since it would benefit
the most. Everything went well till I tried to play video from a UPNP
source, I was getting StreamNotFound errors. After a few hours of debugging
and reading the Beta documentation I tracked down the issue, there was a
change in behavior in how a request for videos over HTTP occurs from a GET
to a POST.
I wasn't sure what this came from (AIR 2b or Flash 10.1b) but wondered if
anyone else noticed this small but significant change. I guess my next step
will be creating a bug in JIRA, just wanted to put it out on the list.
Here's the rundown:
- Flex 3.4.1.10084 for both
- Air Versions: 1.5.2 vs 2.0B
- X-Flash-Versions: 10,0,32,18 vs 10,1,50,334
Smallest Reproducible Code:
protected function runTest() : void{
var metaListener : Object = new Object();
var netConn : NetConnection = new NetConnection();
netConn.connect(null);
// init the stream
var stream : NetStream = new NetStream(netConn);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
metaListener.onMetaData = theMeta;
stream.client = metaListener;
stream.play( <PUT SOME VIDEO URL HERE> );
}
protected function netStatusHandler( event : NetStatusEvent) : void{
trace("netStatusHandler: " + event.type + " " + event.info.code);
}
protected function theMeta(data:Object):void {
trace("Duration: " + data.duration + " Position: " + data.moovposition);
}
Example request from Apache Log:
------- FROM 1.5.2
<ipremoved> - - [18/Nov/2009:10:36:27 -0500] "GET /mp4/shaun.mp4 HTTP/1.1"
200 46272134
------- FROM 2.0B
<ipremoved> - - [18/Nov/2009:10:35:10 -0500] "POST /mp4/shaun.mp4 HTTP/1.1"
200 46272134
Example request from Twonky Media Server Log:
------- FROM 1.5.2
11:12:46:043 LOG_HTTP:HTTP_send_receive GET
/disk/video/O0$3$24I49/Robots.m4v HTTP/1.1
Host: 127.0.0.1:9000
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en)
AppleWebKit/526.9+ (KHTML, like Gecko) AdobeAIR/1.5.2
Referer: app:/VideoBreakAIR.swf
X-Flash-Version: 10,0,32,18
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
------- FROM 2.0B
11:14:24:458 LOG_HTTP:HTTP_send_receive POST
/disk/video/O0$3$24I49/Robots.m4v HTTP/1.1
Host: 127.0.0.1:9000
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9
(KHTML, like Gecko) AdobeAIR/2.0
Referer: app:/VideoBreakAIR2.swf
X-Flash-Version: 10,1,50,334
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Connection: keep-alive