嵌入式 AVPlayer 不播放视频
Embedded AVPlayer is not playing video
我正在尝试使用 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()
}
您使用的 IOS 是什么版本?看起来这可能与 Apple 的新 transport layer security enhancements.
有关
您需要启用您的应用程序以允许流式传输来自该特定域的视频。您也可以在开发应用程序时绕过传输层安全性。
查看此线程以了解如何执行此操作:
还有,您可能想使用不同的 url 构造函数来流式传输您的文件:
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()
}
我认为除了 UIWebView
之外没有其他方法可以在 iOS 应用程序中播放 youtube 视频。
您也可以通过传递视频重定向到 youtube 应用程序 url.So youtube 应用程序将处理其余的事情。
您可以阅读 YouTube 第 2 部分第 10 点的指南:https://developers.google.com/youtube/terms?hl=en
您可以使用 youtube 播放器:https://developers.google.com/youtube/v3/guides/ios_youtube_helper#installation
最后,我用Swift Youtube Player嵌入了视频。它超级容易使用。
您可以将 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];
我正在尝试使用 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()
}
您使用的 IOS 是什么版本?看起来这可能与 Apple 的新 transport layer security enhancements.
有关您需要启用您的应用程序以允许流式传输来自该特定域的视频。您也可以在开发应用程序时绕过传输层安全性。
查看此线程以了解如何执行此操作:
还有,您可能想使用不同的 url 构造函数来流式传输您的文件:
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()
}
我认为除了 UIWebView
之外没有其他方法可以在 iOS 应用程序中播放 youtube 视频。
您也可以通过传递视频重定向到 youtube 应用程序 url.So youtube 应用程序将处理其余的事情。
您可以阅读 YouTube 第 2 部分第 10 点的指南:https://developers.google.com/youtube/terms?hl=en
您可以使用 youtube 播放器:https://developers.google.com/youtube/v3/guides/ios_youtube_helper#installation
最后,我用Swift Youtube Player嵌入了视频。它超级容易使用。
您可以将 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];