如何使用C #制作播放器技术方法及代码 要使 C# 代码引用 COM 对象和接口,需要在 C# 内部版本中包含 COM 接口的 .NET 框架定义。完成此操作的最简单方法是使用 TlbImp.exe(类型库导入程序),它是一个包括在 .NET 框架 SDK 中的命令行工具。TlbImp 将 COM 类型库转换为 .NET 框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。用 TlbImp 创建的 .NET 框架元数据可以通过 /R 编译器选项包括在 C# 内部版本中。如果使用 Visual Studio 开发环境,则只需添加对 COM 类型库的引用,将为您自动完成此转换。 例如,我们要播放当前目录下的demo.avi 文件,需要用到包含在位于 Windows 系统目录中的 Quartz.dll 中的媒体播放机。(c:\winnt\system32\quartz.dll)。可在命令行中运行 TlbImp 文件(C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\Tlbimp.exe) tlbimp c:\windows\system32\quartz.dll /out:QuartzTypeLib.dll 得到的新程序集放到目录 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin 下面 请注意,得到的 DLL 需要命名为 QuartzTypeLib,以便 .NET 框架可以在运行时正确加载包含类型。 生成程序时使用 C# 编译器选项 /R 以包含 QuartzTypeLib.dll 文件;如果使用 Visual Studio 开发环境,直接添加引用即可(using QuartzTypeLib)。 然后就可以使用此程序显示影片了。 具体编写代码时,用到了 RenderFile 和 Run 方法。例: private void menuItemOpen_Click(object sender, System.EventArgs e) { FilgraphManager m_FilGraphManager = null; IBasicAudio m_BasicAudio = null; IVideoWindow m_VideoWindow = null; IMediaEvent m_MediaEvent = null; IMediaEventEx m_MediaEventEx = null; IMediaPosition m_MediaPosition = null; IMediaControl m_MediaControl = null; OpenFileDialog OpenDialog = new OpenFileDialog(); OpenDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*"; //本例用对话框读入要显示的影片文件名 if (DialogResult.OK == OpenDialog.ShowDialog()) { m_FilGraphManager = new FilgraphManager(); m_FilGraphManager.RenderFile(OpenDialog.FileName); m_BasicAudio = m_FilGraphMana...