嵌入式 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];