0

写真からビデオを取得して再レンダリングできるようにする必要があります。時間内にクリップし、幅と高さ、およびフレーム レートを変更します。確かに私はから始める必要があります:

    PHContentEditingInputRequestOptions *options = [[PHContentEditingInputRequestOptions alloc] init];

    [self.asset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {

        // Get full image

        NSURL *url = [contentEditingInput fullSizeImageURL];

    }];

また、幅、高さ、および期間を調整できる必要があります。そこから NSData を取得し、それをファイル syset.m に書き出します。

しかし、URL は nil です。これは、新しい Photos フレームワークでビデオを編集できないことを意味します。(ALAsset では、AVAssetExportSession を使用してこれに問題はありませんでした。) Apple Dev サンプル コードもビデオを編集できないため、これは理にかなっています。

さて、生活を楽にするために、その URL を AVAssetExportSession に渡すことができましたが、それは nil であるためできません。幅、高さ、および期間を変更した場合でも、そこから NSData を取得し、それをファイル システムに書き込む必要があります。

変更したビデオを写真に書き戻す必要はありません。サーバーにアップロードするので、実際にはファイル システムにビデオが必要です。

4

1 に答える 1

2

fullSizeImageURL写真アセットを操作するためのものです。avAssetビデオを操作するときにプロパティが必要です。新しいビデオ ファイルを書き込んで、メタデータではなく実際のビデオを変更します。

avAssetそれを行うには、AVMutableComposition でそれを使用できます。

avAsset のビデオ トラック ( AVAssetTrack)の適切な時間範囲を に挿入しますAVMutableCompositionTrack。これでトリミングが完了します。

レイヤー命令を使用して、適切に配置/サイズ変更します。( AVMutableVideoCompositionLayerInstruction) をクリックして、トリミングとスケーリングを行います。

于 2014-09-26T22:11:23.793 に答える