0

我试图从资产库播放 alasset MOV 文件。有人使用 AVPlayerLayer 吗?如果是的话,一些历史会很棒......

4

2 回答 2

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];
于 2014-03-12T12:03:27.180 回答
-1

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

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

2) 使用 ALAssetsRepresentation 的 getBytes:fromOffset:length:error: 获取视频内容,将视频保存到您自己的应用沙箱中播放/编辑/分享或使用 getBytes:fromOffset:length:error: 流式传输视频内容.

于 2014-03-03T09:31:36.583 回答