使用Swift

时间:2015-07-21 17:58:03

标签: ios swift video mp4

我一直在寻找有关从网站播放视频的其他帖子,但没有一个解决方案对我有用。我测试我的应用程序时出现黑屏,视频似乎无法加载。

在全球范围内,我已声明:

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()

    }

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

Picovico给你的URL实际上回复了一条消息,告诉请求者内容不在这个位置但他们应该尝试不同的位置 - 这是URL重定向的常用技术。

如果您在浏览器中尝试链接并捕获网络请求和响应,则可以看到此信息。例如,使用Chrome中上面包含的链接会给出以下回复:

enter image description here

您可以看到服务器告诉客户端(在这种情况下是浏览器)将重定向(即发送新请求)重定向到您的视频实际存储在Picovico上的S3亚马逊网址。

当浏览器将其请求发送到该位置时,它会成功找到该视频:

enter image description here

使用ffprobe查看视频时,格式似乎很好,因此看起来iOS客户端很难处理重定向,或者在Picovico服务器上暂时存在URL重定向问题。如果你现在仍然遇到问题那么前者很可能是问题。

如果你看看这里你可以看到有人如何解决iOS媒体播放器处理重定向的问题: