AVPlayer 에서 이미지 가로보기 재생
싱글뷰로 프로젝트를 하나 만든 후
가로보기는 LandscapeRight로 설정한다.
그 다음 AVFoundation FrameWork를 추가한다.
.h 파일에 버튼과 플레이어를 추가한다.
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface nemesisViewController : UIViewController {
AVPlayer *player;
UIButton *btnPlay;
}
@property (nonatomic, retain) IBOutlet UIButton *btnPlay;
-(IBAction)btnPlayTouch:(id)sender;
@end
.m 파일에는 다음과 같이 추가한다.
먼저 가로보기 추가
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// 오른쪽 가로보기 고정
return (interfaceOrientation != UIInterfaceOrientationLandscapeRight);
}
그 다음 프로퍼티 설정
@synthesize btnPlay;
프로퍼티 종료시 설정
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.btnPlay = nil;
}
버튼 클릭시 메소드 추가
-(IBAction)btnPlayTouch:(id)sender
{
// Movie File Plat Test
NSString *movieFilePath = [[NSBundle mainBundle] pathForResource:@"IMG_2614" ofType:@"MOV"];
NSURL *url = [NSURL fileURLWithPath:movieFilePath];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
player = [AVPlayer playerWithPlayerItem:playerItem];
NSArray *visualTracks = [asset tracksWithMediaCharacteristic:AVMediaCharacteristicVisual];
if ((!visualTracks) || ([visualTracks count] == 0)) {
NSLog(@"not Moview File");
} else {
// 레이어 선언
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
// 크기 조정
playerLayer.frame = CGRectMake(0, 0, 480, 320);
// 크기에 동영상 맞추기
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
// 동영상 추가
[self.view.layer addSublayer:playerLayer];
// 동영상 재생
[player play];
}
}
실행해 보니 가로보기로 잘 된다.
댓글
댓글 쓰기