Wie wird ein Film mit einer URL mit einem benutzerdefinierten NSURLProtocol wiedergegeben?

8

Wie Sie wissen, spielen Sie einen Film mit dem MPMoviePlayerController-Objekt mit

%Vor%

Jetzt möchte ich ein benutzerdefiniertes NSURLProtocol erreichen, in dem ich eine Filmquelle entschlüsseln werde, die von AlgorithmDES verschlüsselt wurde. Ist diese Möglichkeit? Danke, dass du irgendwelche Ideen gegeben hast. Brauchst du Hilfe?

    
ben 08.12.2010, 01:27
quelle

4 Antworten

13

UPDATE: Ich habe mit Apple darüber gesprochen und es ist momentan nicht möglich, MPMoviePlayerController mit einer NSURLProtocol-Unterklasse zu verwenden!

Hej,

Ich bin mir nicht sicher, aber es könnte möglich sein. Ich arbeite gerade an etwas ähnlichem, aber habe es nicht voll funktionstüchtig. Was ich herausgefunden habe, ist, dass MPMoviePlayerController mit meiner benutzerdefinierten NSURLProtocol-Unterklasse interagiert. ABER es scheint wichtig zu sein, die HTTPHeaders von NSURLRequest zu berücksichtigen, da sie einen Bereich von Bytes definieren, den MPMoviePlayerController benötigt.

Wenn Sie sie in Ihrer NSURLProtocol-Unterklasse ablegen, erhalten Sie für den Anfang etwa folgendes:

%Vor%

}

Also mein GUESS ist, dass solange es möglich ist, den richtigen Bereich zur Verfügung zu stellen und eine mp4-Datei zurückzugeben, die vom MPMoviePlayerController abgespielt werden kann!

EDIT: Hier ist ein interessanter Link: Ressourcen in iPhone- und iPad-Apps schützen

>     
Oliver Heyme 16.01.2011, 16:10
quelle
6

Die Lösung besteht darin, Anforderungen über einen lokalen HTTP-Server zu übertragen. Ich habe dies mit CocoaHTTPServer erreicht.

Sehen Sie sich das Beispiel HTTPAsyncFileResponse an.

    
vaughan 14.01.2014 03:09
quelle
5

Es gibt eine weitere Lösung als iOS 7. Sie können AVAssetResourceLoaderDelegate für AVAssetResourceLoader verwenden. Aber das funktioniert dann nur mit AVPlayer.

Es gibt ein Demo-Projekt von Apple namens AVARLDelegateDemo, schau es dir an und du solltest finden, was du brauchst. (Ich denke, eine Verknüpfung ist keine gute Idee, suchen Sie einfach in der Entwicklerbibliothek unter developer.apple.com). Verwenden Sie dann ein beliebiges benutzerdefiniertes URL-Schema (ohne ein NSURLProtocol zu deklarieren) und bearbeiten Sie dieses URL-Schema in AVAssetResourceLoaderDelegate.

Wenn es ein großes Interesse gibt, könnte ich einen Beweis für das Konzept geben.

    
Soph 12.06.2014 13:10
quelle
1
%Vor%

Beachten Sie die Verwendung einer Dummy-URL, um AVPlayer zur Verwendung der Methoden AVAssetResourceLoaderDelegate zu zwingen, anstatt direkt auf die URL zuzugreifen.

    
Mojo66 29.11.2016 07:51
quelle