连接 QMediaPlayer 和 QIODevice
Connecting QMediaPlayer and QIODevice
我正在从事一个创建安全视频播放器的项目。我想在使用 QMediaPlayer class 时即时实现视频加密。有人可以帮我实现这个目标吗?将解密数据写入 QIOdevice 并以正确的方式从 QIODevice 读取?如果可以,我可以获得示例实现吗?
提前致谢
是的,这是可能的方法之一。一个例子是:
- 子类化 QIODevice 并重新实现 readData()
- 在您的重新实现中,您读取了加密数据,对其进行解密,然后return它
- 您将 QIODevice-based 对象传递给 QMediaPlayer。
如果你想让播放器能够搜索,你需要实现QIODevice::IsSequential() (return false)和实现seek/pos。如果您的加密是 byte-to-byte(即您不是 packing/padding 内容),这应该是一个相当简单的实现。
另一种方法是使用 QAudioDecoder + QAudioOutput。这将允许您执行一些技巧,例如先加密原始 PCM,然后再对其进行编码。
我正在从事一个创建安全视频播放器的项目。我想在使用 QMediaPlayer class 时即时实现视频加密。有人可以帮我实现这个目标吗?将解密数据写入 QIOdevice 并以正确的方式从 QIODevice 读取?如果可以,我可以获得示例实现吗?
提前致谢
是的,这是可能的方法之一。一个例子是:
- 子类化 QIODevice 并重新实现 readData()
- 在您的重新实现中,您读取了加密数据,对其进行解密,然后return它
- 您将 QIODevice-based 对象传递给 QMediaPlayer。
如果你想让播放器能够搜索,你需要实现QIODevice::IsSequential() (return false)和实现seek/pos。如果您的加密是 byte-to-byte(即您不是 packing/padding 内容),这应该是一个相当简单的实现。
另一种方法是使用 QAudioDecoder + QAudioOutput。这将允许您执行一些技巧,例如先加密原始 PCM,然后再对其进行编码。