2014-03-03 37 views

回答

-1

由于沙箱,您无法从AssetsLibrary中获取实际的文件路径。但是,您有多种选项来访问/播放视频文件。

1)使用ALAssetRepresentation的url方法查询Asset的URL,并将其传递给MPMoviePlayerController的实例来播放视频。该URL以assets-library开头://并且不是文件系统url,但MPMoviePlayerController知道如何处理这样的URL。

2)使用getBytes获取视频内容:fromOffset:length:error:of ALAssetsRepresentation将视频保存到您自己的应用沙盒中以播放/编辑/共享或使用getBytes:fromOffset:length:error:to流式传输视频内容。

+0

我已经在表单中的URL,但(资产库://asset/asset.MOV ID = 6309B178-2070-42CE-8BA8-31A4BEA16F5E及EXT = MOV),但玩家无法启动,所有我看到是黑屏。 btw即时通讯在我的iPhone上调试,所以没有沙箱问题。 –

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]; 
相关问题