Loving Coding & Visual Design

Flvplayback无法播放包含参数的视频网址的问题

最近常看Flash视频,发现视频可以正常下载,但是无法正常播放。原来是视频网址包含问号参数,出现如下错误:
VideoError: 1005: Invalid xml: URL: "http://domain/zhaiduo.flv?sid=as92Ft32&FLVPlaybackVersion=2.1" No root node found; if url is for an flv it must have .flv extension and take no parameters
at fl.video::SMILManager/http://www.adobe.com/2007/flash/flvplayback/internal::xmlLoadEventHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

网上解决办法有三个:

  • 直接修改FLVPlayback的源文件 (来源),在665行:
    if ( name.indexOf("?") < 0 &&
    to
    if ( name.indexOf(".flv") > 0 &&

    失败:修改ncmanager.as后出现更多错误,例如:DynamicStream.as, Line 368    1020: Method marked override must override another method,貌似是FLVPlayback的版本不对。

  • 用URL重写,把?和参数伪静态:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} ^/video/(.*)$
    RewriteRule ^video/(.*)$ http://$1 [R=301,L]
    虽然重写成功,但是得到的视频是403 forbidden,貌似视频网址有安全防范。

  • 重写FLVPlayback


我都尝试了,最后用NetConnectionNetStream重新定制了一个简单的Flv player才把问题解决。



下一页


最 近 文 章

  1. 宜家托运家具损坏不用赔? - Mon, 09 Jul 2012 08:46:35 +0000
  2. 租车体验:标致207-1.6升 - Mon, 02 Jul 2012 15:59:14 +0000
  3. 用PNG代替JPG的一个理由 - Thu, 28 Jun 2012 20:04:18 +0000
  4. 租车最好自带GPS - Tue, 26 Jun 2012 15:30:05 +0000
  5. 把博客服务器换成Nginx - Sun, 24 Jun 2012 19:30:18 +0000
  6. tar备份出错:Error exit delayed from previous errors - Wed, 20 Jun 2012 12:45:18 +0000
  7. GAE的OverQuotaError错误 - Fri, 15 Jun 2012 05:06:15 +0000
  8. Windows下git提交到rhc - Sat, 26 May 2012 05:14:13 +0000
  9. 为什么要使用fullScreenSourceRect? - Thu, 24 May 2012 19:47:56 +0000
  10. 感谢神舟租车的代金券 - Thu, 24 May 2012 10:55:56 +0000