我正在尝试使用播放视频,所以我从教程中获得了一些代码,但它不起作用。
下面是我使用的代码:
- (void) viewDidAppear:(BOOL)animated
{
avAsset = [AVAsset assetWithURL:[NSURL URLWithString:filePath]];
avPlayerItem =[avPlayerItem initWithAsset:avAsset];
avPlayer = [AVPlayer playerWithPlayerItem:avPlayerItem];
avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayer];
[avPlayerLayer setFrame:self.view.frame];
[self.view.layer addSublayer:avPlayerLayer];
[avPlayer seekToTime:kCMTimeZero];
[avPlayer play];
}我不知道出了什么问题,它不会给出ny错误,它只会给出黑屏。谢谢。
发布于 2013-05-13 01:40:15
感谢s1mon和matt的帮助。
下面是它可能对某些人有帮助的新代码:
- (void) viewDidAppear:(BOOL)animated
{
avAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:filePath]];
avPlayerItem =[[AVPlayerItem alloc]initWithAsset:avAsset];
avPlayer = [[AVPlayer alloc]initWithPlayerItem:avPlayerItem];
avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:avPlayer];
[avPlayerLayer setFrame:self.view.frame];
[self.view.layer addSublayer:avPlayerLayer];
//[avPlayerLayer setBackgroundColor:[[UIColor redColor]CGColor]];
[avPlayer seekToTime:kCMTimeZero];
[avPlayer play];
}谢谢。
发布于 2013-05-13 00:26:12
这可能不是真正的问题,但这段代码肯定是错误的:
[NSURL URLWithString:filePath]首先,尽量不要从文件路径开始;从文件URL开始。这样,就不需要转换了。但是,如果您必须执行从文件路径到URL的转换,请使用fileURLWithPath:isDirectory:。文件URL是一种特殊的动物,当您从路径转换时,必须特别要求一个URL。
发布于 2013-05-13 00:20:50
我想您忘了在下面这行代码中创建AVPlayerItem的一个实例:
avPlayerItem =[avPlayerItem initWithAsset:avAsset];这只会将initWithAsset:发送给avPlayerItem (在调用此方法时,它可能为空)。尝试将其更改为实例化一个新的AVPlayerItem,然后可以将其分配给avPlayerItem,如下所示:
avPlayerItem = [[AVPlayerItem alloc] initWithAsset:avAsset];https://stackoverflow.com/questions/16509142
复制相似问题