我必须从USB驱动器中读取加密的音乐或视频,将其作为流动解密,并将其发送到MP3播放器。
我已经可以从USB中读取文件并在块中动态解密,但现在我需要将块状数据发送到某个地方来播放它,例如Windows媒体播放器(WMP)。
WMP需要一个指向音乐/视频源的URL,所以我想我会在内存中创建一个流并将其作为URL提供给WMP。然后当WMP开始从流中读取时,它会以某种方式调用我的函数,然后从USB读取一大块数据,解密它,然后将它放到WMP播放的流中。
有人知道如何创建URL流,然后在流需要数据时收到通知吗?
我正在使用Visual C ++ MFC / Win32。
由于
答案 0 :(得分:0)
WMP需要一个URL,该URL可以是文件的名称,也可以是传递文件数据的HTTP(S)URL。在您的情况下,HTTP选项似乎是一个不错的选择,因此您可以在需要数据时收到通知。为此,您必须实现自己的小型HTTP服务器,最好是在ephemeral端口上。因此,您将音乐文件存储在内存中并设置HTTP服务器以传送文件数据。例如,URL将类似http://127.0.0.1:5432/MusicFile.mp3,您指定给WMP。然后,您的Web服务器将收到该文件的请求,您可以开始发送它。
注意,使用(非持久的)内存映射文件也应该有效。但是,您表示您希望收到通知,而且目前尚不清楚是否能够提供数据。