我一直在寻找有关从网站播放视频的其他帖子,但没有一个解决方案对我有用。我测试我的应用程序时出现黑屏,视频似乎无法加载。
在全球范围内,我已声明:
var moviePlayer:MPMoviePlayerController!
在我的ViewDidLoad()函数中,我有:
let url:NSURL = NSURL(string:"http://uapi-f1.picovico.com/v2.1/v/nMirP/ArwenUndomiel.mp4")!
self.moviePlayer = MPMoviePlayerController(contentURL: url)
if let player = self.moviePlayer {
player.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
player.view.sizeToFit()
player.scalingMode = MPMovieScalingMode.None
player.movieSourceType = MPMovieSourceType.Streaming
self.view.addSubview(player.view)
player.play()
}
感谢您的帮助!
答案 0 :(得分:1)
Picovico给你的URL实际上回复了一条消息,告诉请求者内容不在这个位置但他们应该尝试不同的位置 - 这是URL重定向的常用技术。
如果您在浏览器中尝试链接并捕获网络请求和响应,则可以看到此信息。例如,使用Chrome中上面包含的链接会给出以下回复:
您可以看到服务器告诉客户端(在这种情况下是浏览器)将重定向(即发送新请求)重定向到您的视频实际存储在Picovico上的S3亚马逊网址。
当浏览器将其请求发送到该位置时,它会成功找到该视频:
使用ffprobe查看视频时,格式似乎很好,因此看起来iOS客户端很难处理重定向,或者在Picovico服务器上暂时存在URL重定向问题。如果你现在仍然遇到问题那么前者很可能是问题。
如果你看看这里你可以看到有人如何解决iOS媒体播放器处理重定向的问题: