我正在尝试使用 Swift 嵌入视频播放器。当我运行应用程序时,我可以看到视频播放器,但视频没有播放。你能查看一下缺失点吗?提前谢谢。
var playerItem: AVPlayerItem?
var player: AVPlayer?
if let videoLink = newLaunch.videoLinks where newLaunch.videoLinks!.count > 0{
let videoUrl = videoLink[0]
let streamingURL: NSURL = NSURL(fileURLWithPath: videoUrl)
player = AVPlayer(URL: streamingURL)
let playerController = AVPlayerViewController()
playerController.player = player
self.addChildViewController(playerController)
self.videoContainerView.addSubview(playerController.view)
playerController.view.frame = self.videoContainerView.bounds
player!.play()
}
答案 0 :(得分:2)
最后,我使用Swift Youtube Player来嵌入视频。它非常易于使用。
答案 1 :(得分:0)
您使用的是什么版本的IOS?看起来这可能与Apple的新transport layer security enhancements有关。
您需要启用应用以允许来自该特定域的流视频。您可以在开发应用程序时绕过传输层安全性。
查看此主题如何执行此操作:https://stackoverflow.com/a/36305505/5229157
,您可能希望使用其他网址构造函数来传输文件:
let videoUrl = videoLink[0]
let streamingURL = NSURL(string: videoUrl) //- assuming videoLink is of type [String]
player = AVPlayer(URL: streamingURL)
修改强>:
请尝试以下代码:
let videoUrl = videoLink[0]
let streamingURL = NSURL(string: videoUrl)
let playerController = AVPlayerViewController()
playerController.player = AVPlayer(URL: streamingURL)
self.presentViewController(playerController, animated: true) {
self.playerController.player?.play()
}
答案 2 :(得分:0)
我认为除了UIWebView
之外没有办法在iOS应用程序中播放youtube视频。
您也可以通过传递视频网址重定向到youtube应用程序。所以youtube应用程序将处理其余的事情。
您可以阅读YouTube第2部分第10点的指南:https://developers.google.com/youtube/terms?hl=en
您可以使用youtube播放器:https://developers.google.com/youtube/v3/guides/ios_youtube_helper#installation
答案 3 :(得分:-1)
您可以在视图上添加AVPlayer作为图层:
player = [[AVPlayer alloc] init....
playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
CGSize size = self.view.bounds.size;
float x = size.width/2.0-187.0;
float y = size.height/2.0 - 125.0;
playerLayer.frame = CGRectMake(x, y, 474, 320);
[playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[self.view.layer addSublayer:playerLayer];
[player play];