【问题标题】:How to play a video from Stream or MemoryStream using WPF-Mediakit?如何使用 WPF-Mediakit 从 Stream 或 MemoryStream 播放视频?
【发布时间】:2019-09-23 08:32:26
【问题描述】:

对于我的 wpf 应用程序,我需要播放保存在 MemoryStream 中的视频文件。是否可以通过使用 WPF-mediakit 来实现?

由于 MediaElement 不支持直接从内存播放视频,我一直在使用 vlc.dotnet 库来实现这一点。但是,我正在寻找替代方案。我发现一些帖子说 WPF-Mediakit 可以播放 MemoryStream 中的视频,但我无法在源代码或文档中找到所描述的功能。

如果有人能指出我在播放保存在 WPF-Mediakit 内存中的视频的正确方向,那就太好了。

【问题讨论】:

    标签: c# wpf stream wpf-mediakit


    【解决方案1】:

    不,WPF-MediaKit 无法播放内存流中的视频。只需将其保存到临时文件(例如使用System.IO.Path.GetTempFileName())并从文件中播放视频。

    WPF-MediaKit 使用DirectShowLib,它只是MS Windows DirectShow 接口的包装。那是非托管代码。所以:

    1. 您不能将 C#MemoryStream(即托管内存)用于非托管代码。您必须使用非托管内存。
    2. DirectShow 基于过滤器。 AFAIK 它没有输入过滤器,可以从内存中播放。但是您可以编写一个代码,例如见https://stackoverflow.com/a/24478030/254109

    注意:您还可以使用一些基于 FFmpeg 的解决方案,请参阅 https://github.com/Sascha-L/WPF-MediaKit/wiki/Similar-Projects 例如FFME.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2016-09-16
      • 2014-05-10
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2012-01-08
      相关资源
      最近更新 更多