gaoxiang

专注于.NET技术

博客园 首页 新随笔 联系 订阅 管理
.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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

2006-02-15 16:31 by ctn
这个在我的VS2003中不能通过。。

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

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

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

曾经我天天用.

Microsoft.DirectX.VideoAndAudioPlayback

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

另外 Windows Media SDK也是可以的

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

# re: C#播放rm文件  回复   

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

曾经我天天用.

Microsoft.DirectX.VideoAndAudioPlayback

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

另外 Windows Media SDK也是可以的

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

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

# re: C#播放rm文件  回复   

2006-05-09 08:22 by xiaosheng
http://service.real.com/help/library/guides/production/htmfiles/control.htm
posted on 2006-05-18 13:52  S孤单一吻S  阅读(527)  评论(0)    收藏  举报