10

この質問が以前に尋ねられたことは知っていますが(たとえば、ここここ)、何が間違っているのかわかりません。

私はいくつかのビデオ クリップをそれらの上でアニメーション化AVMutableCompositionするいくつかの と組み合わせるために使用する を持っています。CALayer

my を取り、AVMutableCompositionそれを for と組み合わせてAVSynchronizedLayer内で再生すると、すべて正常に動作しAVPlayerLayerます。ビデオは正しく出力され、すべてが適切な場所に配置されます。

私の問題は、このことをエクスポートしようとしたときに、(エクスポートに使用する必要があるとドキュメントに記載されているものです) と AVAssetExportSession のAVVideoCompositionCoreAnimationTool代わりに使用しようとしたことですが、エクスポートされたムービーではすべての座標系が逆になってAVSynchronizedLayerいるため、何か問題が発生します。CALayer

したがって、再生中にムービーをエクスポートするときに 0,0 ポイントが画面の左上隅にある場合、0,0 ポイントは左下隅にあるため、アニメーションが狂ってしまいます。

これに関する記事を読み、Apple から AVVideoEdit サンプルをダウンロードしましたが、何が起こっているのかわかりません...

4

2 に答える 2

20

私と同じ問題を抱えている人にとって、私はついに答えを見つけました。エクスポートする直前に設定する必要があるすべてのCALayer呼び出されたプロパティがあり、すべて問題ありません。詳細はこちらgeometryFlippedYES

于 2011-10-18T20:43:16.353 に答える
-1
Methods that fixing frames and points
- (CGRect) fixRect:(CGRect)rect inRect:(CGRect)container
{
    CGRect frame = rect;
    frame.origin.y = container.size.height - frame.origin.y - frame.size.height;
    return frame;
}
- (CGPoint) fixPoint:(CGPoint)point fromPoint:(CGSize)containerSize
{
    CGPoint frame = point;
    frame.y = containerSize.height - frame.y;
    return frame;
}
于 2012-07-05T14:30:27.913 に答える