我正在尝试创建一个视频播放器,它可以解密内存中的视频数据并播放它,而无需将解密的数据存储在硬盘上。我正在使用带有视频小部件和 QBuffer 的 Qt 框架。我解密视频的第一段并将其存储在 QBuffer 中并开始播放。这可行,但在调用 setCurrentSource 之后,写入 QBuffer 的所有数据都将被忽略。
我相信这与不同的后端有关。是否可以在 Qt (pyQt) 中直接从内存中实现播放,如果没有,还有其他选择吗?
QFile file ("/Users/user/video.mov");
file.open(QIODevice::ReadOnly);
QByteArray array1;
QByteArray array2;
QBuffer *playbackBuffer = new QBuffer();
playbackBuffer->open(QBuffer::ReadWrite);
array1 = file.read(10000000);
array2 = file.read(10000000);
playbackBuffer->write(array1);
videoMedia->setCurrentSource(playbackBuffer);
videoOutput->play();
playbackBuffer->write(array2);