2014-03-03 3 views

답변

-1

Sandboxing 때문에 AssetsLibrary에서 실제 파일 경로를 가져올 수 없습니다. 그러나 비디오 파일에 액세스/재생할 수있는 다양한 옵션이 있습니다.

1) ALAssetRepresentation의 url 메소드를 사용하여 자산의 URL을 쿼리하고 MPMoviePlayerController 인스턴스에 전달하여 비디오를 재생합니다. 이 url은 assets-library : //로 시작하고 파일 시스템 URL이 아니지만 MPMoviePlayerController는 이러한 URL을 처리하는 방법을 알고 있습니다.

2) ALAssetsRepresentation의 getBytes : fromOffset : length : error :를 사용하여 비디오 내용을 가져 와서 비디오를 재생/편집/공유하기 위해 자신의 앱 샌드 박스에 저장하거나 getBytes : fromOffset : length : error :를 사용합니다. 동영상 콘텐츠를 스트리밍합니다.

+0

내가 이미 그 형태의 URL 만이 (자산 라이브러리 : //asset/asset.MOV ID = 6309B178-2070-42CE - 8BA8-31A4BEA16F5E 및 내선 = MOV)하지만 플레이어가 시작되지, 모두 내가 검은 화면이 참조하십시오. 내 아이폰에 디버깅 그래서 거기 샌드 박스 문제가 btw 메신저. –

1
NSURL *myMovieURL = [NSURL URLWithString:_vUrl.absoluteString]; 
AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:myMovieURL options:nil]; 
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:avAsset]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(playerItemDidReachEnd:) 
              name:AVPlayerItemDidPlayToEndTimeNotification 
              object:playerItem]; 
self.player = [[AVPlayer alloc]initWithPlayerItem:playerItem]; 
[_playerlayer addObserver:self forKeyPath:@"readyForDisplay" options:0 context:nil]; 

((AVPlayerLayer *)[self layer]).bounds = ((AVPlayerLayer *)[self layer]).bounds; 
[(AVPlayerLayer *)[self layer] setPlayer:_player]; 
_playerlayer = (AVPlayerLayer *)[self layer]; 
[_player seekToTime:kCMTimeZero]; 
관련 문제