3

我有以下要求:

我需要一个可以在 CE (x86) + .NET Compact Framework 上运行的 api 来播放视频(类似于 CorePlayer API...只是免费的)?

他们还有什么可用的吗,还是我必须使用 CorePlayer?

4

4 回答 4

1

您需要使用 DShow 并为您打算在图像中播放的任何媒体提供编解码器。WMP 9.0 的 COM 互操作(至少在 CE 5.0 中提供,也可能在 6.0 中提供)对于托管代码来说是非入门的。

如果您不了解 DShow,那么即使在本机代码中,这也是相当多的工作,因为 DShow 不是一个有趣或友好的 API 集。

好处是你在镜像中根本不需要 WMP,所以你通常可以使用 Core CE 许可证(使用 WMP 需要 Pro)。我知道一个商业 DShow 控件,但你说你正在寻找一个免费的解决方案,我不知道除了滚动你自己的之外的任何东西。根据你对 COM 互操作的熟悉程度(你需要 DShow 的东西)以及 DShow 和 filtergraphs 的使用,我会分配至少一两个星期来让它工作。

一个补充说明 - 复杂性也会根据您希望视频显示的方式而变化。如果它只是全屏,那么它比将它放入应用程序的窗口中要少一些工作。不是少很多,但至少是一点点。

于 2008-12-01T16:43:43.770 回答
1

您可以将 MediaPlayer 与 COM 互操作一起使用。看看这个这个

此外,您的设备中可能未安装媒体播放器。

于 2008-12-01T14:15:57.063 回答
0

直接秀?查看此页面作为起点。前提是 DirectShow 出现在您的 CE 上,我不知道...

编辑:既然你可以使用 DirectShow,我想补充一点。

正如ctacke 所指出的,如果您手动执行所有操作,可能会做很多工作,但如果您可以使用它就非常简单IGraphBuilder(请参阅我上面链接的示例)。

我对 DirectShow 版本了解不多,但 Windows Mobile 6.0 中包含的版本缺少用于 MPEG 音频的分离器。这意味着,例如,除非您将它们包装在 RIFF 标头中,否则它不会播放 .mp3 文件。

于 2008-12-01T13:56:13.720 回答
0

我敢打赌,如果您正在寻找 C# 解决方案,您可以将一些DirectShow.Net转换为在 CE 上运行。

于 2009-04-02T19:38:00.737 回答