2016-07-05 4 views
1

AVPlayerが最初のフレームにあるとき、私はYouTubeのポスターフレームのようにビデオに別のフレームを表示したいと思います。このようなことをどうやって実現しますか?あなたはそれに応じて任意の目に見える層の内容のプロパティを設定しますAVPlayerポスターフレーム

+1

私はAVAssetImageGeneratorのドキュメントを読むことから始めます:あなたがここに見ることができるよう

はしかし、その後、再び、マルチスレッドとメモリ管理は、私の強いスーツです。 apple.com/library/ios/documentation/AVFoundation/Reference/AVAssetImageGenerator_Class/index.html – matt

+0

返信いただきありがとうございます。それはフレームを取得するために動作します。私はこのイメージを 'AVPlayerViewController'の' contentOverlayView'プロパティに表示するか、それとも良い方法がありますか? –

答えて

0

不思議
UIImage *image = [UIImage imageWithCGImage:...]; // replace ... with the CGImage returned by AVAssetImageGenerator 
view.layer.contents = (__bridge id)image.CGImage; 

を、あなたはUIImageを作成し、レイヤのコンテンツプロパティを設定するCGImageに戻ってそれを変換する必要があります。 UIImageをCFReleaseで直ちにリリースするか、__weakまたは__autoreleasing指定子を使うか、@autoreleasepoolだけでUIImageを解放することができます。

誰もあなたにこれがメモリを消費しているとか遅いと言わせてはいけません。これをNSThread経由でメインから別のスレッドに格下げすると、それは他の手段と同じくらい速くなります。そして、私はこの方法で80 UIImagesを1つの画面で前に表示しました。します。https://開発者

https://youtu.be/7QlaO7WxjGg