我的UIViewController
我有UIView
的电子插座,我希望使用外部链接显示视频。在这种情况下,我尝试创建AVPlayerLayer
并将其添加到我的UIView
商店。
我的代码看起来像这样:
class VievController: UICollectionViewController {
@IBOutlet weak var playerView: UIView!
override func viewDidLoad(){
let playerItem = AVPlayerItem(URL: NSURL(string: ("https://www.youtube.com/watch?v=_yE_XgoWBso"))!)
let avPlayer = AVPlayer(playerItem: playerItem)
let playerLayer = AVPlayerLayer(player: avPlayer)
playerLayer.frame = playerView.bounds
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
playerView.layer.addSublayer(playerLayer)
avPlayer.play()
}
}//end class
我不知道为什么我在UIVIew
插座上看不到视频 - 什么都没发生。你有什么建议我应该修理什么吗?
答案 0 :(得分:3)
let url = NSBundle.mainBundle().URLForResource("ding.mp3", withExtension: nil)
guard let newURL = url else {
print("Could not find file:")
return
}
do {
backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: newURL)
backgroundMusicPlayer.numberOfLoops = 0
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
} catch let error as NSError {
//print(error.description)
}
你需要导入avfoundation框架然后使用上面的代码
答案 1 :(得分:3)
Below code help you to solve the issue
Adjust the frame according to your needs
- (void)viewDidLoad
{
[super viewDidLoad];
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError];
NSString *urlString=[NSString stringWithFormat:@"%@",@"http://www.youtube.com/watch?v=zPP6lXaL7KA&feature=youtube_gdata_player"];
AVAsset *asset = [AVAsset assetWithURL:[NSURL urlWithString:urlString]];
avPlayerItem = [[AVPlayerItem alloc]initWithAsset:asset];
self.songPlayer = [AVPlayer playerWithPlayerItem:avPlayerItem];
self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer: self.songPlayer];
self.avPlayerLayer.frame = self.view.layer.bounds;
UIView *newView = [[UIView alloc] initWithFrame:self.view.bounds];
[newView.layer addSublayer:avPlayerLayer];
[self.view addSubview:newView];
[ self.songPlayer play];
}
答案 2 :(得分:1)
很遗憾,您无法使用AVPlayer播放YouTube,Vimeo等。 为此,您必须使用UIWebView。