繁体   English   中英

如何使用AVPlayerLayer播放资产库中的视频文件

[英]How to play video file from asset library using AVPlayerLayer

我正在尝试从资产库播放Alasset MOV文件。 有人使用AVPlayerLayer吗? 如果是的话,一些历史学家将是伟大的...

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];

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

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

2)使用ALAssetsRepresentation的getBytes:fromOffset:length:error:将视频保存到您自己的应用沙箱中以播放/编辑/共享它,或者使用getBytes:fromOffset:length:error:来获取视频内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM