Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 嵌入式AVPlayer未播放视频_Ios_Swift_Avplayer_App Transport Security_Embedded Video - Fatal编程技术网

Ios 嵌入式AVPlayer未播放视频

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

我正在尝试使用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?看起来这可能与苹果的新产品有关

您需要启用您的应用程序以允许来自该特定域的流式视频。您也可以在开发应用程序时绕过传输层安全

查看此线程了解如何执行此操作:

同样,您可能希望使用不同的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中。但结果也不例外。