Ios 嵌入式AVPlayer未播放视频
我正在尝试使用Swift嵌入视频播放器。当我运行应用程序时,我可以看到视频播放器,但视频没有播放。你能查一下遗漏的地方吗?提前谢谢Ios 嵌入式AVPlayer未播放视频,ios,swift,avplayer,app-transport-security,embedded-video,Ios,Swift,Avplayer,App Transport Security,Embedded Video,我正在尝试使用Swift嵌入视频播放器。当我运行应用程序时,我可以看到视频播放器,但视频没有播放。你能查一下遗漏的地方吗?提前谢谢 var playerItem: AVPlayerItem? var player: AVPlayer? if let videoLink = newLaunch.videoLinks where newLaunch.videoLinks!.count > 0{ let videoUrl = videoLink[0] let streamin
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?看起来这可能与苹果的新产品有关 您需要启用您的应用程序以允许来自该特定域的流式视频。您也可以在开发应用程序时绕过传输层安全 查看此线程了解如何执行此操作: 同样,您可能希望使用不同的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视频是没有办法的。
此外,您还可以通过传递视频url重定向到youtube应用程序,这样youtube应用程序将处理其余的事情
您可以阅读YouTube第2节第10点的指南:
你可以使用youtube播放器:最后,我用来嵌入视频。它非常容易使用 您可以将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];
您是否可以选中此->而不是将playercontroller添加为childcontroller。。出示/推它。他现在在工作吗?。如果是的话,那么至少我们会知道。。这是由于添加了childviewcontroller,否则,AVPlayer还有其他一些问题。@Mehul,我想是的。我会尝试一下。另外,通过调试fileurlpath来检查您使用的是否正确。有时,使用fileurlpath的路径会产生问题,所以请尝试其他方法too@MehulThakkar,我已经检查了文件url路径,我可以看到从服务器接收的文件路径。如果您使用的是服务器url。。然后永远不要使用fileURLWithPath,问题出在。。使用urlWithString作为服务器url。fileURLWithPath用于本地URL。现在它可以工作了。尝试我100%确信,这个url已经造成了问题,对吗?我使用的是iOS 8.1。在info.plist中,我设置了“允许任意加载=是”。我也尝试过使用NSURL(string:videoUrl),但结果是一样的。视频仍无法播放。我编辑了答案,请从视图控制器尝试该方法。希望有帮助!谢谢你的帮助,仍然没有播放视频。哎呀!抱歉,我刚刚意识到我错过了一行playerController.player=AVPlayer(URL:streamingURL),我更新了代码中的代码块,我将playerController嵌入了videoContainerView中。因此,在您的代码旁边,我添加了两行代码,用于将子视图添加到videoContainerView中。但结果也不例外。