C# 自定义内存流

问题描述

我想创建一个使用 LibVLCSharp API 的小型媒体播放器。为了避免可能的卡顿,我想将视频部分加载到内存中,并将 MemoryStream 传递给 API。将流传递给 VLC API 没有问题。

由于我的视频文件大小可能超过 20 GB,我只想将它们部分加载到内存中。

例如:我有一个 1 小时的视频,大小约为 20GB。 一开始我想将前 5 分钟(~2GB)加载到内存中。 播放完视频的第一分钟后,应删除第一分钟的数据,并将第 6 分钟的数据加载到 RAM 中。

有人可以给我提供一个关于如何实现这样的东西的代码示例吗?

解决方法

VLC 已经做了自己的缓冲,是否有不直接传递 FileStream 的原因?

你需要搜索视频吗?如果没有,我会尝试使用 PipeReader/PipeWriter 作为 MediaInput 实现。我认为我们没有这方面的代码,但我们欢迎提供示例。

如果您需要搜索视频,请使用 FileStream,或者,如果不可能,请实现您自己的 Stream 子类来访问您的文件。 VLC 将进行缓冲。

您没有提供太多有关“口吃”的信息,因此我们对此无能为力。当您尝试读取 MemoryStream 中的数据时会发生这种情况吗?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...