zhuweisky

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。

ESFramework,基于.NET的通信框架。DataRabbit,轻量的数据访问框架。Strive,游戏引擎。sky.zhuwei@163.com
posts - 196, comments - 1329, trackbacks - 101, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

C#播放rm文件

Posted on 2006-02-15 11:14 zhuweisky 阅读(3502) 评论(13)  编辑 收藏 网摘 所属分类: C#专栏
    .NET FrameWork 1.1之前版本根本不支持多媒体,.NET FrameWork 2.0也只是对多媒体进行了最简单最有限的支持,如果在我们的.NET程序中需要播放多媒体文件,通常只有通过互操作引入Activex控件来播放音频/视频。在网上找了N久关于C#播放rm视频的文章,终于有了一点结果。为了方便后来者,在这里给出C#中播放rm的简单步骤:
(1)安装了RealOne或RealPlayer ,或者获取了Interop.RealAudioObjects.dll和AxInterop.RealAudioObjects.dll。
(2)在项目的工具箱控件面板中右键菜单=》“添加/移除项”=》COM组件,选中RealPlayer G2 Control并添加
(3)将新添加的RealPlayer G2 Control控件拖到Form中,会在Form的cs文件中增加一个成员变量:   
private AxRealAudioObjects.AxRealAudio axRealAudio1;
(4)播放一个rm文件,只需要像下面这样:
                //设置要播放的媒体文件
                this.axRealAudio1.Source = "videotest.rm" ;
                
//显示图像、显示控制面板(快进、停止等)
                this.axRealAudio1.SetControls("ImageWindow,controlpanel") ;
                
//开始播放
                this.axRealAudio1.DoPlay() ;


(5)若需要更复杂的播放控制,可通过VS的智能感知来查看AxRealAudio的每一个方法/属性的名称、含义。
(6)更详细的AxRealAudio 控件的使用说明参见这里:
       http://service.real.com/help/library/guides/production/htmfiles/control.htm

Feedback

#1楼    回复  引用    

2006-02-15 12:01 by ff [未注册用户]
看来.NET并不是有些人说的多么多么强大哈!!!连人们最喜爱的多媒体功能都是有限地提供

#2楼    回复  引用  查看    

2006-02-15 12:36 by 81      
rm是专有格式!

#3楼    回复  引用  查看    

2006-02-15 14:40 by powerword      
windows下面的多媒体是通过directx来进行编程的。从directx9开始,sdk里面的例子就有了c#的版本。
.net不提供多媒体功能,因为没有这个必要。

#4楼    回复  引用    

2006-02-15 16:31 by ctn [未注册用户]
这个在我的VS2003中不能通过。。

提示“未处理的“System.NullReferenceException”类型的异常出现在 RealG2Control.exe 中。

其他信息: 未将对象引用设置到对象的实例。

#5楼    回复  引用  查看    

2006-02-15 17:18 by Wu.Country@侠缘      
呵呵,还不如播放Flash来的简单。。。。其实原理也差不多哦。。
其实我到还真想知道如何用C#来自己处理多媒体,如自己封装类,自己定义文件格式等。。。。而这些真的很难得在.net下实现。
想用几个API都那么麻烦,郁闷死了。。。。。。。。
还好,它对这些COM或者Active的支持都还是很不错的。。。。

#6楼    回复  引用  查看    

2006-02-15 21:52 by a11s.net      
谁说不可以的...

曾经我天天用.

Microsoft.DirectX.VideoAndAudioPlayback

需要MS DXSDK支持,你都用real了,当然我可以用SDK.发布就是多几个dll罢了

另外 Windows Media SDK也是可以的

Real的也支持,因为都是DirectShow的.测试过.而且尝试过Alpha以及旋转等等..

#7楼    回复  引用  查看    

2006-02-15 22:01 by a11s.net      
谁说不可以的...

曾经我天天用.

Microsoft.DirectX.VideoAndAudioPlayback

需要MS DXSDK支持,你都用real了,当然我可以用SDK.发布就是多几个dll罢了

另外 Windows Media SDK也是可以的

Real的也支持,因为都是DirectShow的.测试过.而且尝试过Alpha以及旋转等等..

#8楼    回复  引用  查看    

2006-02-16 00:08 by 蜡人张      
原来是用COM组件,“.NET FrameWork 1.1之前版本根本不支持多媒体”是什么意思?即使是在Access等VBA环境下也是可以的吧?

#9楼    回复  引用  查看    

2006-02-16 17:17 by a11s.net      
要是这么说,没有不是COM的吧.包括DirectX也都是基于COM的.其他的东西,包括Real的实现DirectDraw也是COM.各种视频也基本上都是DirectShow
所以到了DirectX层就算可以了

#10楼    回复  引用    

2006-05-02 20:34 by 万事开头难 [未注册用户]
为什么我按照那上边的所有步骤做了可是还是不能放啊是不是还少了什么代码啊

#11楼    回复  引用    

2006-05-09 08:22 by xiaosheng [未注册用户]
http://service.real.com/help/library/guides/production/htmfiles/control.htm

#12楼    回复  引用  查看    

2006-12-04 11:42 by 张明亮      
@ff

你的回复有点傻!很让人受不了!
一个什么都不懂的人开始“指点江山”,崩溃!

#13楼    回复  引用    

2008-02-28 09:30 by BENJAMIN.Z [未注册用户]
a11s.net 我怎么播不了RM
我用Microsoft.DirectX.VideoAndAudioPlayback
怎么回事?




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

相关文章:

相关链接: