IOS AVPlayer不会播放视频
我想播放视频使用所以我从教程中得到了一些代码,但它不会工作。IOS AVPlayer不会播放视频
这是我使用的代码:
- (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];
}
我不知道什么是错了,它并没有给纽约州的错误,它只是提供了黑屏。 谢谢。
嘿感谢家伙s1mon和亚光的帮助
下面是新的代码,可能帮助别人:
- (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];
}
THXXXXXXXX球员:d
我想你忘了此行创造的AVPlayerItem
一个实例:
avPlayerItem =[avPlayerItem initWithAsset:avAsset];
这只是发送initWithAsset:
到avPlayerItem
(这可能是零,当调用此方法)。试着改变它来实例化一个新的AVPlayerItem
然后你就可以分配给avPlayerItem
,像这样:
avPlayerItem = [[AVPlayerItem alloc] initWithAsset:avAsset];
这也是一个问题:d 感谢:d – 2013-05-12 17:38:12
这可能不是实际的问题,但是这个代码肯定是错误的:
[NSURL URLWithString:filePath]
第一所有,尽量不要以文件路径开始;从文件URL开始。这样,就不需要转换。但是如果您必须执行从文件路径到URL的转换,请使用fileURLWithPath:isDirectory:
。文件URL是一种特殊的动物,当你从一条路径转换时,你必须特别要求一个。
显然,这就是问题所在:d Thankssssssssss:d – 2013-05-12 17:36:05
这是荒谬的。 'URLWithString'和'fileURLWithPath:'都创建一个有效的'NSURL'实例。为什么前者不能使用'AVPlayer'对我来说没有意义。 – Legoless 2015-04-27 14:52:45
对于那些寻找一个swift 2.0 version
,这里是什么对我有效。干杯。
import Foundation
import UIKit
import AVKit
class VideoViewController: AVPlayerViewController {
override func viewDidAppear(animated: Bool) {
self.setupVideoPlayerView()
}
private func setupVideoPlayerView()
{
let path = "HTTP_VIDEO_URL_HERE"
let nsURL = NSURL(string: path)
let avAsset = AVAsset(URL: nsURL!)
let avPlayerItem = AVPlayerItem(asset: avAsset)
let avPlayer = AVPlayer(playerItem: avPlayerItem)
let avPlayerLayer = AVPlayerLayer(layer: avPlayer)
avPlayerLayer.frame = self.view.frame
self.view.layer.addSublayer(avPlayerLayer)
self.player = avPlayer
self.player!.seekToTime(kCMTimeZero)
self.player!.play()
}
}
感谢分享.. **它完美的作品** – swiftBoy 2015-01-29 07:56:47
我试图在我的应用程序中实现相同的代码,我使用Tableview来显示来自服务器的所有视频,我有视频的网址,当我通过这个细胞,比它不玩它,请帮助... – ravinder521986 2015-08-01 03:36:27
有趣的是,我将背景颜色设置为红色,就像您在注释掉的代码中所做的一样,以确保图层在屏幕上可见。 – ninjaneer 2016-01-31 23:12:55