我试图在 C# 应用程序中捕获 RTMP 流并播放它。
我选择了以下架构:
- 将 Flash Player 嵌入到 C# 应用程序中。(完毕)
- 在嵌入式 Flash Player 中运行 Strobe Media Playback。(完毕)
- 在嵌入式 Strobe Media Playback 播放器中捕获 RTMP 流。(失败的)
问题是我无法设置视频源位置。RTMP 和 HTTP 源都不起作用。
Strobe Media Playback 显示唯一的文本字符串:“我们无法连接到您请求的内容。对于给您带来的不便,我们深表歉意。”
我尝试了几种设置源的方法:
- 通过设置 FlashVars:
flash.FlashVars = @"src=http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4";
或
flash.FlashVars = @"FlashVars=""src=http://players.edgesuite.net/videos/big_buck_bunny/bbb_448x252.mp4""";
- 通过创建 XML-config 并通过 FlashVars 将有关它的信息传递给 Strobe:
flash.FlashVars = @"configuration=D:\configuration.xml";
此外,我无法以任何这种方式播放本地托管的 .flv 文件。
从理论上讲,我正在尝试做什么?
如果是,如何从 C# 代码设置 Strobe Playback 的视频源?
附加技术信息:
为了将 Flash Player 嵌入 C# 应用程序,我使用了两个库:
AxInterop.ShockwaveFlashObjects.dll 和 Interop.ShockwaveFlashObjects.dll
Flash 版本:11.5.502.135
频闪媒体播放版本:1.6.328
示例 C# 项目可以在这里找到:http: //narod.ru/disk/64598707001.c8d1ae94c60a63a021bfdffc82864bb2/WPF_Flash.7z.html
PS 如果您知道在 .NET 应用程序中捕获和播放 RTMP 流的更好方法,请分享您的知识。