我该如何发现电脑中是否有一个播放器可以播放给定的文件格式
本文关键字:播放 播放器 格式 文件 有一个 是否 何发现 发现 电脑 | 更新日期: 2023-09-27 18:16:41
1.VLC可以播放一些文件格式(假设是真实的音频文件?(.ra((,但Windows Media Player(默认(不能。我如何才能知道系统中是否有播放器可以播放我想要的文件格式?
2.此外,有没有一种方法可以以通用的方式将这样的播放器嵌入我的(C#(应用程序中?
这有点复杂,但我可以给你一个起点(代码现在写起来有点太长了(,所以我的想法是这样的。
你只需在中搜索即可
HKEY_CLASSES_ROOT
文件扩展名的蜂窝(在您的情况下,它将是.ra(。如果您找到这样的键,您将有一个子键来帮助您确定使用了什么软件来打开它们,或者使用"内容类型"字符串值,您在HKEY_CLASSES_ROOT中执行另一次搜索,在那里您将再次有键来说明什么软件打开这种内容。
因此,您需要使用处理注册表的类(因为您想用程序实现这一点(。
关于您的第二个问题:我不认为有一种通用的方法可以将任何播放器嵌入您的应用程序中。这是因为不是每个玩家都会提供一些API来附加,你不会有一个依赖的合同和很多其他问题。您可能在Windows API方面取得了一些成功,但我怀疑它能否涵盖您最终必须支持的所有场景。
您在这里几乎没有选择:
- 使用Media Player,如果文件格式为不支持-让用户使用默认播放器打开(对System.Diagnostics.Process.Start的简单调用文件名应该足够Windows启动相应的程序((最简单的方法(
- 编写自己的播放器,它可以从各种格式。您应该能够找到许多支持的格式通过互联网上的不同库,或者至少找到他们的RFC(你能做的最艰难的事(
- 使用某些库或软件转换无法在后台播放的文件类型,并在媒体播放器上运行它们,就好像它们受到支持一样(这可能是用最少的努力实现最大效果的好方法(,您可以使用System.Diagnostics.Process.Start在后台再次启动一些进程,对用户隐藏它们,并在转换后加载媒体。当你上传一个文件时,像YouTube这样的视频网站会做这样的事情——他们把它放在另一个进程上,这样它就可以被转换,然后视频就可以以通用格式提供(我相信在大多数情况下是flash视频-flv(