|

楼主 |
发表于 2008-5-22 13:53:03
|
显示全部楼层
常见疑难问题
1,声波(声音频谱效果)无法正常显示
因为Flash跨域策略的限制导致,Flash本身不能读取跨域mp3的波形数据,解决办法有:
将crossdomain.xml放到加载音乐所在同级目录(如果加载网络音乐则不能实现)
或将mp3音乐和CMP播放器放在同一个域下
更多讨论见:http://bbs.cenfun.com/viewthread.php?tid=7925&pid=18561
2,wma文件不能播放
CMP在加载完会自动部署wmp播放环境,并自动检测是否能启动wmp模块
如果遇到不能播放或跳过情况,说明您的wmp模块启动失败
成功启动wmp模块的几个条件说明:
必须在浏览器容器中打开(firefox浏览器需安装wmp插件:http://port25.technet.com/pages/ ... lugin-download.aspx)
必须为flash的html插入标签添加id标识,如:<object classid="clsid: D27CDB6E-AE6D-11cf-96B8-444553540000" id="cmp">
必须允许Flash与页面进行网络通讯,AllowScriptAccess="always" allowNetworking="all"
故QQ空间不能启动wmp模块,因为其阻止了通讯:allowNetworking="internal"
3,能播放wma,但不能播放mp3
wma的播放实际上是调用了操作系统的Windows Media Player(简称WMP)来播放的
如果你的CMP能播放wma音乐,说明WMP模块已经成功启用
既然软件(WMP)能打开地址,则可采用wmp模块来播放Flash不能播放的MP3
请在歌曲类型中设置为3即可(默认mp3采用flash播放,这里强制指定采用wmp播放),如:
<m type="3" src="http://music1.hexun.com/save/music/2006/1229/1032/m_b7852d382bc95e22.mp3">名称</m>
flash和软件对同一音乐的播放机制并不相同,如软件也许可以绕过防盗链设置,或者其安全机制不同,故软件能播放并不能表示flash就一定能播放
如果wmp模块能成功启动播放,则表示wmp支持的格式CMP都能播放,如:mpg;.mpeg;.mpe;.mp2;.mp3;.avi;.wmv;.dat;.asf;.mid;.midi;.wav;.wma;
(播放rmvb;.ra;.rm;.ram;(RealPlayer格式)应该需要您的Windows Media Player安装相应补丁支持)
4,显示信息乱码
因为编辑config.xml配置文件和list.xml列表文件时,保存了其他文件编码格式导致
请最好用记事本打开编辑,保存为UFT-8的编码格式(另存为,编码中选择UTF-8)
同时请注意xml文档格式正确,检测方法是:用浏览器打开无异常提示,正确显示文档树即可
5,关于皮肤制作
皮肤制作对于初学者将比较困难,如有千千静听等软件皮肤制作经验的,相信会极易上手
其实皮肤包中的皮肤配置文件skin.xml中已经有详细注释,附带皮肤可当作参照模板
压缩时注意用zip格式(winRAR软件压缩时可以选择压缩成zip格式),rar格式将不能读取
必须将皮肤配置文件skin.xml压缩在顶级,不能放在下级目录中
其实在皮肤配置文件中,可以配置成任意宽度,任意位置,窗口可以锁定,可以隐藏,可以分组,大小位置宽高都可以自定义,各个窗口也可以重叠(叠放层次按配置文件层次),也可以不用皮肤(使用空皮肤),等等
稍作修改,也可以实现v2.1版怀旧皮肤,也可做成一个长条,只留住进度条和播放按钮(隐藏所有其他窗口),方便放入任何网站,任何风格
皮肤配置文件说明:http://bbs.cenfun.com/viewthread.php?tid=7937
6,背景与皮肤脱离的问题
严格上说,这里的皮肤指播放器本身的风格设置,也就是皮肤包中的文件,其实也可实现一起变化(先自行研究)
而这里后面放的那个大背景,其实是属于插件模块了
插件模块的好处,轻松实现第三方程序的整合播放,如,
1,放入计数器对播放器进行统计
2,放一个北京2008倒计时flash到右上角,或者加个flash留言簿
3,加载个动画背景,可设置前置,如同v2.1时的场景
4,放一个falsh闹钟到左上角,或者flash天气预报
5,放一个广告插件,浏览听歌同时,挣点外快
6,自作一个友情链接放左下角,什么博客地址,空间地址等
7,写上自己签名,头像到右下角
等等
以上布局只是随意放的,有了皮肤和插件坐标系统,可以轻松实现您想要的任意布局
7,关于载入Flash(插件、皮肤)的宽高问题
载入Flash的宽高易出现问题,因为此时不是使用Flash文档属性里设置的宽高,而是整个flash内容的实际宽高
只有当内容宽高等于文档宽高时才不会出现拉伸异常等问题
8,关于加载插件时老版本flash不兼容(场景不显示)问题
如果插件flash采用的是ActionScript 2.0程序写的
而CMP3是ActionScript 3.0程序写的
他们将在不同的虚拟机运行:
-ActionScript 3.0 在 AVM2 虚拟机运行
-ActionScript 1.0 和 2.0 在 AVM1 虚拟机运行
如果加载的是老版本的Flash,则:
AVM1 内容无法将文件加载到各级别。
例如,它无法通过调用 loadMovieNum("url", levelNum) 来加载文件。
即你的flash如果使用loadMovieNum来加载动画,将不能在CMP3中实现
可换一种方法来加载,先创建空影片剪辑,然后用loadMovie方法来加载,如:
var scene1:MovieClip = this.createEmptyMovieClip("scene1", this.getNextHighestDepth());
loadMovie("http://www.cenfun.com/scene/s1.swf", scene1);
var scene2:MovieClip = this.createEmptyMovieClip("scene2", this.getNextHighestDepth());
loadMovie("http://www.cenfun.com/scene/s2.swf", scene2);
var scene3:MovieClip = this.createEmptyMovieClip("scene3", this.getNextHighestDepth());
loadMovie("http://www.cenfun.com/scene/s3.swf", scene3);
以上将加载三个flash动画
如无需随机加载,则可直接在CMP3配置文件中直接配置加载多个场景,如:
<plugin name="s1" xywh="0, 0, 0, 0" src="http://www.cenfun.com/scene/s1.swf" display="1" />
<plugin name="s2" xywh="0, 0, 0, 0" src="http://www.cenfun.com/scene/s2.swf" display="1" />
<plugin name="s3" xywh="0, 0, 0, 0" src="http://www.cenfun.com/scene/s3.swf" display="1" />
详细配置属性,见配置文件中的相关注释说明
9,关于歌词错误
歌词需要lrc格式,但与是lrc还是txt的文件后缀无关,即:
如果你的空间不支持lrc后缀的文件下载,可以改成txt或其他后缀即可
由于安全策略限制,不能跨域加载歌词文件,除非对方的跨域策略文件允许你读取,这里同波形限制是一样的原理
10,遇到空间不支持所需文件格式下载
如果你的空间不支持音乐上传或下载,则可尝试修改文件后缀,然后再上传,或者修改文件后缀,然后看能否下载。
当测试能下载后,指定type属性,强制CMP识别此文件类型:
type: 音乐类型,不填将根据文件后缀(扩展名)自动识别,支持三种:1,MP3音频 2,FLV/MP4视频 3,WMP类型
如:设定type="1"则指定CMP使用mp3模块播放此地址
如果你的视频为mov后缀的文件,但其为h.264视频格式,指定type="2"即可指定CMP使用视频模块播放
如果你的空间有mp3音乐防盗链,在CMP(flash)无法播放,但可以用专门的播放软件播放,则可尝试指定type="3"来启用WMP播放
您的空间一般支持网页或图片文件,如jpg,gif,png,htm,html等等,即:
<m type="1" src="http://网址/mp3文件名.jpg">网络mp3</m>
<m type="2" src="http://网址/flv文件名.htm">网络flv</m>
这样如果能实现mp3正常播放,则可不用担心您的波形效果不显示问题了,只要你的空间够大
当然,如果空间不够了,也没问题,多申请几个,专门放音乐文件,注意此时已经跨域了,请上传你的crossdomain.xml文件,允许你的CMP所在域读取波形数据即可
如果你的空间不支持皮肤包(zip)下载,则也可采取类似的办法
如:你的皮肤为wmp11.zip,修改为wmp11.jpg,上传到skins目录后,在配置文件中做相应修改:<skin src="skins/wmp11.jpg" />
如果你的空间不支持歌词(lrc)下载,则也可采取类似的办法
如:你的歌词为music.lrc,修改为music.txt或music.jpg,上传到lrc目录后,在列表文件中做相应修改:
<m src="http://.mp3" lrc="lrc/music.txt">Music</m>
如果空间不支持xml也可以参照以下[基础操作问题]4:自定义传参,进行相应的设置,当然你的空间必须支持flash(swf)
11,CPU使用率高的一般原因
1,第三方插件。眉飞色舞,五花八门,东闪西飘的flash尤先。请尝试禁用插件
2,皮肤配置过多,尤其开始时,皮肤需逐个全部下载,加之设置自动播放,歌曲一并下载,不费CPU也费内存。
请大家给CMP和网络减负,尽量少预配置皮肤,一般不设置自动播放(还用户自主权和清净)
反之并不会给用户留下好感,没人愿意让电脑卡住,也没人无聊将你的每一个皮肤都看个遍(皮肤发布者除外,并可用skin_src单个加载预览)
3,皮肤中的动画过于花哨,耗费更多CPU,尤其是AS2版的Flash
4,MP3混音器的消耗,视频尺寸越大消耗越多,开启滤镜消耗越多。改变尺寸时,CMP会根据你的视频大小,自动关闭和打开滤镜,请尽量保持小的视频窗口
5,播放高清视频的耗费,越清晰尺寸越大耗费越多
6,开启视频平滑处理,开启视频黑白模式和加亮处理,都会耗费更多CPU资源,请尽量关闭
7,当前曲目下载完,会自动预下载(缓冲)下一曲目,可能会附加CPU的消耗
8,非标准格式媒体文件播放时快进快退操作,将带来更多的CPU消耗用于寻址和定位
9,列表数目过多
10,加密列表加载时用于解密的消耗
12,播放Mp3时快进跳过歌词不同步的问题
因为目前的Flash Player播放一些非标准压缩或编码的Mp3时,在寻址上并不准确。
当采用CBR(常数比特率/恒定码率)压缩,寻址的精确与否和采样频率有关系,当采样频率大于等于44kHz都正常,而与编码质量关系不大,不管是32kbps到192kbps都寻址正常。
所以推荐大家压缩用于flash player播放的mp3时,一定使用44kHz的采样频率。而文件大小和音效质量由编码率去确定。 |
|