分享

!!!CMP 播放wma/wmv/mms问题详解【有声音没有图像问题】

 看见就非常 2013-03-19
wma/wmv/mms问题详解【有声音没有图像问题】 [打印本页]

作者: cenfun    时间: 2010-6-3 13:29
标题: wma/wmv/mms问题详解【有声音没有图像问题】
发现不认真看使用说明的人比较多,尤其是新手入门者,一个老问题重复问来问去
所以置顶本帖,希望有这个问题的好好看看


更新说明见本帖最下面


CMP能播放wmp类型的媒体,如wma,wmv,mid等,但是有诸多限制,需要特定的环境支持
所以呼吁大家去使用wmp的替代品:
比如用mp3替换wma(http://bbs./thread-12418-1-1.html)
rtmp直播替代mms等,以减少不必要的问题和麻烦


老话重提,为什么CMP不直接播放wmp类型媒体呢?

CMP采用flash开发,flash属于Adobe公司所有
WMP即Windows Media Player,是MicroSoft微软公司的媒体播放器
wma,wmv顾名思义是专门为wmp播放的媒体格式,也是微软所有,是有版权的格式(主要是需要wmp解码器)
这样flash无法播放wmp类型格式是理所当然

为什么flash选择MP3呢,因为MP3是工业标准的音频格式,全世界硬件基本都支持解码,支持多媒体的软件也基本默认就集成mp3解码器,因为通用开源免费

为什么特定环境又能用flash播放wmp类型媒体呢?
实际上不是flash在直接播放wmp类型媒体,而是通过间接的方式在播放,原理如下:

大家知道IE浏览器能用脚本JS来调用WMP来进行播放,而Flash同样能与其所在页面脚本进行通信
这样,以页面JS脚本来作为桥梁,我们能间接使WMP与CMP进行通信,进而实现播放操作
firefox浏览器也可以通过安装一个插件(wmpfirefoxplugin.exe)来支持wmp播放

这就是为什么,播放wmp类型媒体,一定要有网页JS脚本环境,也就是通信桥梁不能断
而且不能阻止flash与页面进行通信,必须设置flash的AllowScriptAccess="always" 和 allowNetworking="all"
在IE下还必须设置object标签的id,否则无法通讯,同时embed标签是不标准的,所以也不行
大家所知的qq空间是禁止flash与页面JS脚本进行通信的,故在qq空间调用cmp是不能实现wmp类型媒体播放的

为什么播放wmv没有图像呢?
因为CMP为了简单,实际上在页面生成了一个隐藏的WMP,当类型为wma或wmv时,都在这个隐藏的wmp里播放
故不会有任何图像显示出来,此时CMP只是起到一个控制的作用

说了这么多,相信大家也想,怎么实现隐藏的图像也可以显示出来呢? 答案是肯定的

最新版本CMP4新增了几个页面JS脚本调用的API后,WMP的相关操作就容易自行修改了
我们可以自己写脚本,把隐藏的WMP显示出来

基本原理就是:
1,CMP加载完后,把隐藏的WMP拿出来
2,并设置其大小与CMP里的视频大小一样
3,设置其位置也相同,这样再覆盖在上面,就可以以假乱真了
4,播放类型为wmp时就显示,否则隐藏
5,播放停止或播放完成时也隐藏

只要看懂了上面的说明,那一切wmp相关问题都能明白为什么
1,有声音没图像,因为wmp层没显示
2,挡住问题,因为wmp层覆盖在上面,cmp所在flash层在下面,是2个不相干的东西
3,无法播放问题,因为wmp模块没有启动,缺少wmp环境
4,全屏等操作,还是因为是2个不同的东西,虽能通讯,但毕竟还有弊端,不解释
等等,一系列问题,不是不解决,而是无法解决
所以,推荐使用flash原生支持的格式,比如mp3,flv,MP4等

详情见例子页面:
https://github.com/cenfun/cmp/tr ... veloper/wmp/wmp.htm
其中已经封装了WMP for CMP类:
https://github.com/cenfun/cmp/tr ... eveloper/wmp/wmp.js
2012.1.18更新:
支持到最新版本CMP4,加入qvod,见:
http://bbs./thread-18402-1-1.html


可下载此页面,查看里面的源码,有详细注释
如果需要进行修改,则要求有一定的JS编程能力,否则请不要胡乱修改而导致新的问题
如果根本看不明白,说明还需要先进行一些相关基础知识的学习


作者: ningzhonghui    时间: 2010-6-3 15:02
沙发又学到新的知识支持老大。。。教程
作者: 50004    时间: 2010-6-3 17:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: sxw2005    时间: 2010-6-3 18:55
持realplayer类型媒体的播放, 大哥也做个学习学习呀。
作者: sxw2005    时间: 2010-6-3 19:20
本帖最后由 sxw2005 于 2010-6-3 20:38 编辑

不会使用。不知道问题出现在哪里了
作者: ytlsl    时间: 2010-6-3 20:05
昨晚我试api.htm改好上传居然点不开下面的按钮
作者: sxw2005    时间: 2010-6-3 20:37
本帖最后由 sxw2005 于 2010-6-3 20:50 编辑

没弄懂呀,怎么在index.htm中用这个功能呢?
作者: 炫彩の叶子    时间: 2010-6-3 22:51
预知未来    兄弟

下面的可以分享下吗?

我邮箱171456003@qq.com   或  xcyz09@163.com

http:///test/live.html
作者: benshan    时间: 2010-8-18 16:01
学习学习。。。
作者: 50004    时间: 2010-8-19 06:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiaoyueyue    时间: 2010-11-13 17:04
还是没整明白,哪个直接上传个完整的打包的啊
作者: chalea    时间: 2010-11-17 18:41
我也不明白讲的是什么意思!能不能搞个打包好直接上传就OK的呀?
作者: 37224197    时间: 2010-11-29 00:22
我搞了好久没看明白,是呀能不能搞个现成的一上传就可以了
作者: jichuan    时间: 2010-11-29 08:43
好久没来了
作者: shwan    时间: 2010-12-11 01:05
cenfun 发表于 2010-6-3 13:29
CMP能播放wmp类型的媒体,如wma,wmv,mid等,但是有诸多限制,需要特定的环境支持

老话重提,为什么CMP不 ...

老大:此法有一点遗憾,会把分享弹出的窗口盖住,望提供解决思路,小弟自己动手改改
作者: shwan    时间: 2010-12-17 21:39
cenfun 发表于 2010-6-3 13:29
发现不认真看使用说明的人比较多,尤其是新手入门者,一个老问题重复问来问去
所以置顶本帖,希望有这个问 ...

支持老大!!真给力!~看到了我们WMP播放需求。。。正当我准备整站转FLV的时候!
作者: shwan    时间: 2010-12-17 21:41
cenfun 发表于 2010-6-3 13:29
发现不认真看使用说明的人比较多,尤其是新手入门者,一个老问题重复问来问去
所以置顶本帖,希望有这个问 ...

另:老大好像把rtsp打成rtmp了
作者: sun0420    时间: 2011-1-10 17:48
还是没看明白如何设置。。。期待高手写出详细流程!!
作者: wangzi_90    时间: 2011-2-13 20:27
不明白,求解答。
作者: operchen    时间: 2011-3-8 11:12
说了等于没有说,我们是新手,能不能出视频教程啊
作者: 百里冰    时间: 2011-4-7 20:11
能支持更多的格式就好了
作者: lxw77320    时间: 2011-4-8 00:54
look``````````
作者: kinlai    时间: 2011-5-6 13:00
都是mms地址,有些可以播放,而有些的确只有声音没有图像的。楼主说的不明白。
作者: kinlai    时间: 2011-5-8 10:37
wmp.js干什么用?是不是上传到网站根目录就可以了?还是需要修改index.html?
作者: lxwcd    时间: 2011-5-13 20:47
本帖最后由 lxwcd 于 2011-5-13 20:56 编辑

看好多人不会,分享一下我更改成功的代码。


<script type="text/javascript" src="cmp.js"></script>
<script type="text/javascript" src="wmp.js"></script>
<div id="cmp_area" style="position:relative;width:80%;height:600px;margin:0px auto;"></div>
<script type="text/javascript">
//定义getElementById到简便函数$
function $(id) { return document.getElementById(id); }

//cmp回调函数,即cmp第一次加载完成时调用,将对wmp进行初始化操作
function cmp_loaded(key) {
        //获取cmp对象
        cmpo = CMP.get("cmp");
        if (!cmpo) {
                alert("CMP初始化错误");
                return;        
        }
        //初始化
        if (WMP) {
                WMP.init(key, cmpo);
        } else {
                alert("WMP类错误");        
        }
}

//cmp的参数,必须设置api=cmp_loaded回调函数
var flashvars = {

        //脚本api回调函数
        api:"cmp_loaded"
};

//id, width, height, url, vars, params, attrs
//CMP.write("cmp", "100%", "100%", "cmp.swf",flashvars, {wmode:"opaque"});
var htm = CMP.create("cmp", "100%", "100%", "cmp.swf", flashvars, {wmode:"opaque"});
$("cmp_area").innerHTML = htm;
</script>
作者: shangzao    时间: 2011-5-13 22:00
lxwcd 发表于 2011-5-13 20:47
看好多人不会,分享一下我更改成功的代码。

朋友请问将此代码放在那个文件里呀?
作者: lxwcd    时间: 2011-5-13 22:11
调用cmp播放器的地方
作者: shangzao    时间: 2011-5-13 22:14
唉!还是不明白!太笨了没办法!
作者: lsmmh    时间: 2011-5-16 20:01
没有搞懂,我做的还是只有声音没有图像
作者: xgb1025    时间: 2011-5-27 09:53
晕,昨天发个帖子被删了,郁闷  既然新版本封装了  就应该显示了 难道是因为我只是单方面的调度

所以才不显示么?询问了好几天 看了老大的帖子 也没讲方法啊  那个cmp.js   wmp.js 我看都应经封装在了文件里了

而且我在这发依旧不显示图像啊   看证据

[video=750,620]http://dl./u/29990513/2ne1%20lonely.wmv[/video]



[cmp=750,640]http://dl./u/29990513/2ne1%20lonely.wmv[/cmp]




作者: xgb1025    时间: 2011-5-27 10:18
那段代码  我是调用的 那是要放在替换内容里么?? 还是添加到cmp.js 文件后面呢???

麻烦朋友说的清楚一点
作者: romam    时间: 2011-5-29 18:40
虽然我对JS不是很熟悉,但是用自己的页面跟老大的例子对照了修改了一下,果断能用了!!!!!!好开心哇~
作者: xgb1025    时间: 2011-5-29 23:34
修改 具体修改的什么??
作者: yowei    时间: 2011-6-1 18:13
http://www.

我播放时,WMP却成百分百遮住右边菜单栏
作者: huangmin1111    时间: 2011-6-4 11:13
问题解决

作者: llaassdd    时间: 2011-6-7 02:12
我修改好了,上传文件给不懂修改的人下载。但新的问题来了,播放wmp节目无法禁示右健,请懂的人把源码发下。谢谢  http://cid-cbba77268c968509.offi ... spx/.Public/cmp.rar
作者: chinaxk    时间: 2011-6-13 21:54
正确使用方法是,上传WMP.JS,之后在INDEX.HTM页面添加调用代码,代码可以参照楼主给的演示页面的。有问题可以来www. 找我
作者: ─╄→OvЁメs呈    时间: 2011-8-24 07:53
l来学习学习~!
作者: a29260578    时间: 2011-9-24 21:26
[cmp=760,420]http://www./ds/cmp.swf?api=cmp_loaded&skin=skins/xunleiPlayer.zip[/cmp]
作者: kampchen    时间: 2011-10-28 19:11
学习了~~~~~~
作者: 59io    时间: 2011-12-1 15:51
aac格式的歌曲怎么弄啊
作者: menghuanrj    时间: 2011-12-6 10:43
学习了·~·原来要下载最新版的CMP4播放器才能播放MMS地址的电视台啊·~
作者: menghuanrj    时间: 2011-12-6 18:55
不会使用。不知道问题出现在哪里了
作者: fengyiyang    时间: 2012-1-13 16:23
真是看不懂呀,能不能说明一下,需要学习那些基础知识呀!!
作者: 喧闹de寂寞    时间: 2012-2-3 09:44
学习一下
作者: ┞┱低頭、偲惗    时间: 2012-2-7 20:24
yowei 发表于 2011-6-1 18:13
http://www.

我播放时,WMP却成百分百遮住右边菜单栏

哥们   能把你的  视频 站点   分享下么    我 买都行····我在内网架设 不 影响您···
作者: 风哥    时间: 2012-2-7 22:41
唉,权限不够啊
作者: 一輩子的夢    时间: 2012-2-7 23:35
呵呵我也去試試謝謝
作者: videomm    时间: 2012-2-9 07:19
笔记做好
作者: 想你的人    时间: 2012-2-21 12:16
还是不大懂呀
作者: yangchunming    时间: 2012-2-27 10:46
学习了!谢谢楼主!
作者: tuxuan    时间: 2012-3-11 12:09
很高深,也很有趣,谢谢这么好的程序
作者: 清风逐月    时间: 2012-4-15 18:06
可惜阅读权限不够啊
作者: 芹菜    时间: 2012-4-17 10:46
谢谢分享
作者: 会飞的云    时间: 2012-4-18 22:54
积分不够啊 1111
作者: 楠楠    时间: 2012-4-21 14:02
我试试了但是错位啊
作者: 芹菜    时间: 2012-6-2 14:13
谢谢了 果然很强大啊
作者: netjh    时间: 2012-6-19 14:24
很好很强大
作者: jiduxz    时间: 2012-8-11 07:14
前来支持一下
作者: fangyang    时间: 2012-8-26 13:36
这个要学习学习
作者: idsscomcn    时间: 2012-9-28 23:11
真想看看是怎么支持快播的。
作者: -___子牧    时间: 2012-11-4 03:30
学习啦 !感谢楼主的!
作者: yanxy0123    时间: 2012-11-17 10:24
想下载相关的程序代码来播放mms地址内容
作者: yanxy0123    时间: 2012-11-17 10:27
为了学习技术,正在最求相关技术信息
作者: ㄗs£之♂卅Sr    时间: 2012-12-4 12:15
老大,我无法看到帖子,怎么下载啊,???我也想要一个,!
作者: ?12580    时间: 2012-12-30 16:55
我来支持一下呵呵 很棒啊
作者: ?12580    时间: 2012-12-30 17:00
晕没看明白怎么回事啊
作者: 酷酷№王子♀    时间: 2013-1-19 15:43
学习了???
作者: 雨后的彩虹    时间: 2013-1-30 02:02
支持到最新版本CMP4,加入qvod
作者: ?12580    时间: 2013-2-9 12:30
看了几遍了 终于搞懂了!!
作者: 楼兰郑    时间: 2013-2-25 04:24
看不到这个啊 http://bbs./thread-18402-1-1.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多