0

我正在开发一个创建安全视频播放器的项目。我想在使用 QMediaPlayer 类时即时实现视频加密。有人可以帮我实现这一目标吗?将解密的数据写入 QIODevice 并从 QIODevice 读取是否正确?如果是这样,我可以获得一个示例实现吗?

提前致谢

4

1 回答 1

1

是的,这是一种可能的方式。一个例子是:

  • 子类 QIODevice 并重新实现 readData()
  • 在您的重新实现中,您读取加密数据,解密并返回它
  • 您将基于 QIODevice 的对象传递给 QMediaPlayer。

如果想让播放器能够seek,则需要实现QIODevice::IsSequential()(返回false)并实现seek/pos。如果您的加密是逐字节的(即您没有打包/填充内容),这应该是一个相当简单的实现。

另一种方法是使用 QAudioDecoder + QAudioOutput。这将允许您执行一些技巧,例如先加密原始 PCM,然后再对其进行编码。

于 2016-01-13T03:52:53.137 回答