aracılığıyla nasıl dışa aktarılacağı, sonuç dosyası arazi alanı modunda. (dosya aracılığıyla itunes-> apps-> dosya paylaşımı-> benim uygulamam) yakalandı. Video varlığını portre modunda nasıl dışa aktarabilirim (döndürün)?AVAssetExportSession yoluyla video varlığını AVAssetExportSession üzerinden bir video öğesi dışa aktardığım zaman portre alanı
cevap
iPhone yakalama aygıtından gelen video, yakalama sırasında aygıt yönelimi ne olursa olsun daima yatay yönlendirilir.
Videonuzu döndürmek istiyorsanız, 'basit' çözüm dışa aktarılan oturumun video izine bir dönüşüm atamaktır.
AVMutableCompositionTrack *videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *audioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
sizin bileşimin parçaları bulmak üzere Medias parçaları ekleyin:
sizin AVComposition nesnesinde 2 değişken parçaları oluşturun tüm parçalarını ilave sonra
...
BOOL videoResult = [videoTrack insertTimeRange:sourceCMTime
ofTrack:[tracks objectAtIndex:0]
atTime:currentTime
error:&error];
BOOL audioResult = [audioTrack insertTimeRange:sourceCMTime
ofTrack:[tracks objectAtIndex:0]
atTime:currentTime
error:&error];
...
uygulamak senin video izinin dönüşümü Kompozisyonunuz:
CGAffineTransform rotationTransform = CGAffineTransformMakeRotation(M_PI_2);
// CGAffineTransform rotateTranslate = CGAffineTransformTranslate(rotationTransform,360,0);
videoTrack.preferredTransform = rotationTransform;
(Transferiye dikkat edin) orm, sol üst köşeyi orijine sahipti, bu nedenle çevirme işlemi rotasyondan sonra gerekliydi, ancak iPhone 4S, iOS 5.1'de test edildi, rotasyon artık merkezde yapıldığı görülüyor.)
U dönüşü bu arada çerçeveden çıkabileceğinden veya siyah blok ile göründüğünden kompozisyon renderSize'yi ayarlayın:
self.mutableVideoComposition.renderSize = CGSizeMake(assetVideoTrack.naturalSize.height,assetVideoTrack.naturalSize.width);