2012-01-12 6 views
1

AVMutablecomposition을 사용하여 AVplayer에서 온라인 비디오 파일을 재생하려고합니다. 비디오는 브라우저에서 재생할 때 매우 훌륭하게 재생되지만 내 iPad에서는 재생할 수 없습니다.AVFoundation - AVplayer가있는 AVMutablecomposition에서 비디오가 재생되지 않았습니다.

self.composition = [AVMutableComposition composition]; 

NSURL *urlVideo = [NSURL URLWithString:@"{video location}"]; 
AVURLAsset *videoAsset = [[AVURLAsset alloc]initWithURL:urlVideo options:nil]; 

AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; 

NSError *error = NULL; 

AVAssetTrack *videoTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0]; 
CMTimeRange x = CMTimeRangeMake(kCMTimeZero, [videoAsset duration]); 
[compositionVideoTrack insertTimeRange:x ofTrack:videoTrack atTime:kCMTimeZero error:nil]; 

그리고 AVPlayer를 설정하는 코드 :

AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithAsset:composition]; 

self.player = [[AVPlayer alloc]initWithPlayerItem:playerItem]; 
AVPlayerLayer *layerVideo = [AVPlayerLayer playerLayerWithPlayer:self.player]; 
layerVideo.frame = self.view.layer.bounds; 
layerVideo.backgroundColor = [UIColor orangeColor].CGColor; 
layerVideo.position = CGPointMake(1024/2, 768/2-10); 

[self.view.layer addSublayer:layerVideo]; 
[self.player play]; 

내가 사용하는 경우

"AVPlayerItem * playerItem = [: videoAsset AVPlayerItem playerItemWithAsset]"여기

코드입니다 대신 "AVPlayerItem * playerItem = [[AVPlayerItem alloc] initWithAsset : composition];" 그러면 비디오가 재생되는 것을 볼 수 있습니다.

누구나 AVMayer를 사용하여 AVMayer를 사용하여 비디오를 재생하는 방법을 알고 있습니까?

답변

0

코드에 몇 가지 오류 검사가 없지만 그대로 작동합니다. 당신이 아이 패드에 아니라면

이 줄 오프 스크린 플레이어 보내드립니다 :

layerVideo.position = CGPointMake(1024/2, 768/2-10); 

을 그런 경우, 올바른 위치로하려고합니다.

+0

감사합니다. 사실 저는 배치에 bg 색상을 layerVideo에 추가했으며 비디오 재생없이 화면에 레이어가 추가 된 것을 볼 수 있습니다. – WilsonL

+0

배경색을 볼 수 있지만 여전히 비디오가 꺼져있을 수 있습니다. 화면. 오디오가있는 비디오를 사용하거나 레이어에 테두리를 추가하여 전체 레이어가 화면에 표시되는지 확인하십시오. 게시 한 코드는 iOS 5에서 정상적으로 작동합니다. – djromero