我想使用 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(使用前将#替换为@)