2016-05-31 12 views
-1

Ich muss verschlüsselte Musik oder Video von USB-Laufwerk lesen, entschlüsseln es als Stream, und senden Sie es an MP3-Player.Stream zu Windows Media Player mit C++

Ich kann schon die Datei von der USB lesen und entschlüsseln es in Chunks, aber jetzt muss ich die Chunked Daten irgendwo, um es zu spielen, zum Beispiel Windows Media Player (WMP).

WMP benötigt eine URL zur Musik-/Videoquelle, also würde ich einen Stream im Speicher erstellen und ihn WMP als URL geben. Dann, wenn WMP beginnt, aus dem Stream zu lesen, würde es irgendwie meine Funktion aufrufen, die dann einen Datenblock von dem USB lesen würde, ihn entschlüsseln und ihn in den Stream setzen würde, um von WMP abgespielt zu werden.

Jeder weiß, wie man einen URL-Stream erstellt und dann benachrichtigt wird, wenn der Stream Daten will?

Ich benutze Visual C++ MFC/Win32.

Dank

+0

Mögliche [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Was ist das Endergebnis? Versuchen Sie, einen Player für diese Art von verschlüsselter Musik zu erstellen? Versuchen Sie Windows Media Player (oder andere Player auf dem System) diesen Dateityp abzuspielen? Haben Sie sich einen der [anderen] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa369729.aspx) [Optionen] (https://msdn.microsoft.com/en -us/library/windows/desktop/ms700168.aspx) [verfügbar] (https://msdn.microsoft.com/en-us/library/windows/desktop/hh828986.aspx)? – theB

+0

Ich habe das Windows Media Player ActiveX-Steuerelement in meinem Visual C++ - Anwendungsdialogfeld eingebettet, aber es scheint, dass es nur von einer URL wiedergeben kann, aber ich habe nur einen entschlüsselten Datenstrom der MP3-Datei. Ich kann die Datei nicht auf die Festplatte schreiben, weil dann jemand sie stehlen kann, also muss ich die Datei nur als Stream abspielen, und wenn ich die ganze Datei in den Speicher lese, dauert es bis zu 15 Sekunden, um die ganze Datei zu lesen und zu entschlüsseln besser zu entschlüsseln und gleichzeitig zu spielen, damit der Benutzer nicht auf die Datei warten muss. Also muss ich wissen, wie man mit einem Stream aus dem Speicher – user5199516

+0

@ user5199516 spielen gibt es ähnliche Themen, schauen Sie z.B. http://stackoverflow.com/questions/18353278/video-encryption-for-local-software und http://StackOverflow.com/Questions/30940230/How-to-play-encrypted-video-file-using-windowsmediaplayer/ 32026471 und http://stackoverflow.com/questions/12405635/play-videos-from-memory-stream –

Antwort

0

Die WMP erfordert eine URL, die den Namen einer Datei oder einem HTTP (S) URL, die die Dateidaten liefert sein kann. In Ihrem Fall scheint die HTTP-Option eine gute Wahl zu sein, damit Sie benachrichtigt werden, wenn Daten benötigt werden. Damit dies funktioniert, müssen Sie einen eigenen kleinen HTTP-Server implementieren, vorzugsweise auf einem ephemeral Port. Sie haben also Ihre Musikdatei im Speicher und richten einen HTTP-Server ein, um die Dateidaten zu übertragen. Die URL ist beispielsweise http://127.0.0.1:5432/MusicFile.mp3, die Sie für WMP angeben. Ihr Webserver erhält dann eine Anfrage für die Datei und Sie können mit dem Senden beginnen.

Als eine Anmerkung sollte auch die Verwendung einer (nicht persistent) Speicherabbilddatei funktionieren. Sie geben jedoch an, dass Sie benachrichtigt werden möchten, und es ist nicht klar, ob das nur Daten liefern soll.