如何将内存流加载到 LibVLC 中?

2023-12-29

我想使用 LibVLC 播放内存流中的媒体文件,如下所示:

//Ideally it would go like this:
LibVLC.MediaFromStream = new MemoryStream(File.ReadAllBytes(File_Path));

当然,这是我想要的一个非常简单的版本,但希望它能传达我正在寻找的东西。

原因是我希望我正在做的事情具有良好的可移植性,而不必跟踪文件位置等。我宁愿在一个可以读取的单个文件中包含大量数据,也不愿跟踪一个或多个文件的位置。

我知道这与 LibVLC IMEM Access 模块有关。然而,看看我能找到的相关信息,我感觉自己好像被从飞机上扔了出来,在落地之前只有几分钟的时间来学习如何飞行。


请参阅我对类似问题的回答:https://stackoverflow.com/a/31316867/2202445 https://stackoverflow.com/a/31316867/2202445

总而言之,API:

libvlc_media_t* libvlc_media_new_callbacks  (libvlc_instance_t * instance,
                                             libvlc_media_open_cb   open_cb,
                                             libvlc_media_read_cb   read_cb,
                                             libvlc_media_seek_cb   seek_cb,
                                             libvlc_media_close_cb  close_cb,
                                             void *     opaque)

只允许这样。必须实现四个回调,尽管文档指出搜索回调并不总是必要的,请参阅libVlc 文档 https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__media.html#ga591c3cbe56444f1949165b2b9b75d8e2。我在上面的答案中给出了部分实现的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将内存流加载到 LibVLC 中? 的相关文章

随机推荐