我正在尝试使用流方法播放.m4a文件。但它不起作用

时间:2011-07-27 10:20:02

标签: actionscript-3 flash-cs4 flash-cs5 flash-cs3

var video:Video = new Video();
addChild(video);
var netCon:NetConnection = new NetConnection();
netCon.connect(null);
var streamNS:NetStream = new NetStream(netCon);
//streamNS.client = this;
//video.attachNetStream(streamNS);
streamNS.play("AfricanElengwen.m4a");
streamNS.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);

function netStatusHandler(e:NetStatusEvent):void
{
    if (e.info.code == "NetStream.Play.FileStructureInvalid")
    {
        trace("The MP4's file structure is invalid.");
    } else if (e.info.code == "NetStream.Play.NoSupportedTrackFound")
    {
        trace("The MP4 doesn't contain any supported tracks");
    }
}

我从以下链接获取此代码, http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player.html#articlecontentAdobe_numberedheader_0

我没有得到任何错误。 任何人都可以说这是什么错误?

2 个答案:

答案 0 :(得分:1)

可能是您的.m4a文件比特率或Flash播放器无法支持的内容。更好的方法是你可以将它转换成mp3文件,然后使用它。

答案 1 :(得分:0)

我刚刚遇到类似NetStream.Play.FileStructureInvalid错误的问题,经过几个小时的挖掘后发现,这似乎发生在Firefox(PC / Mac)中,如果服务器正在压缩之前的内容交货。在Safari(Mac)和其他一些浏览器中,它运行良好。

在Firefox中使用Live HTTP Headers插件显示内容长度没有与响应一起发送,我被提醒它也被gzipped - 我不认为是可能的问题。

对本地.htaccess文件的快速破解证明gzip是罪魁祸首。禁用它后,一切正常:

SetEnv no-gzip dont-vary

我们回到Apache配置并从.mp4文件中删除压缩以正确的方式执行(删除我之前的hack到.htaccess),一切正常!