WEB开发网
开发学院图形图像Flash FLVPlayer组件识别非flv后缀视频 阅读

FLVPlayer组件识别非flv后缀视频

 2008-10-24 11:43:05 来源:WEB开发网   
核心提示:背景大家一定碰到过这种问题, 在本地测试播放成功的 flv 视频在服务器上无法播放, 并且直接访问 flv 文件被告知找不到文件, 这是因为 IIS 6 的默认配置中并没有 flv 后缀的 mime 映射, 所以会产生 404 找不到文件的错误. 通常的做法是修改 IIS 配置, 添加 flv 的 mime 映射, 问

背景

大家一定碰到过这种问题, 在本地测试播放成功的 flv 视频在服务器上无法播放, 并且直接访问 flv 文件被告知找不到文件, 这是因为 IIS 6 的默认配置中并没有 flv 后缀的 mime 映射, 所以会产生 404 找不到文件的错误. 通常的做法是修改 IIS 配置, 添加 flv 的 mime 映射, 问题是解决了, 但如果因为某些条件限制无法修改配置怎么办, 第一个想到的是修改成让他可以被识别的后缀名, 可惜的是自带的组件默认情况下并不允许你那么做, 否则会报告错误

player.contentPath = "water.swf"; // player 是舞台中 FLVPlayer 组件实例名, 这里我把后缀名改成 swf, 以便可以让 IIS 识别

引用:

报错

1005: Invalid xml: URL: "water.swf" No root node found; if file is an flv it must have .flv extension

解决: 使用自定义的 NCManager 替代默认的 NCManager

判断 flv 后缀的代码在 NCManager 的 connectToURL 方法中, 我修改了他的实现从而跳过了这个步骤

NCManager.as 262 行处

原:

代码拷贝框

  if (parseResults.streamName.slice(-4).toLowerCase() == ".flv") {
var canReuse:Boolean = canReuseOldConnection(parseResults);
_isRTMP = false;
_streamName = parseResults.streamName;
return (canReuse || connectHTTP());
} else {
_smilMgr = new SMILManager(this);
return _smilMgr.connectXML(parseResults.streamName);
}</body></html>

Tags:FLVPlayer 组件 识别

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接