MPMoviePlayerController只显示黑屏--Swift

bzm*_*zmw 5 mpmovieplayercontroller ios swift

我在ViewController中有一个View,我想为它添加一个移动播放器控制器.但到目前为止,我只是一个黑屏.我在模拟器上运行它,并使用我在Safari中测试的苹果开发流,它可以工作.

videoView通过IBOutlet添加到控制器.我正在使用Xcode 6 beta 7.

这都在UIViewController中.

videoView 320x320声明(全球):

    @IBOutlet var videoView: UIView!
Run Code Online (Sandbox Code Playgroud)

MPMoviePlayerController声明(全局):

    var videoPlayer : MPMoviePlayerController = MPMoviePlayerController()
Run Code Online (Sandbox Code Playgroud)

将videoPlayer添加到View:

            videoURLWithPath = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
            let videoURL = NSURL(fileURLWithPath: videoURLWithPath)
            videoPlayer.movieSourceType = MPMovieSourceType.Streaming;
            videoPlayer.contentURL = videoURL
            videoPlayer.view.frame = videoView.bounds

            videoView.addSubview(videoPlayer.view)
            videoPlayer.controlStyle = MPMovieControlStyle.Embedded

            videoPlayer.prepareToPlay()
            videoPlayer.play()
Run Code Online (Sandbox Code Playgroud)

故事板:

故事板

模拟器:

在此输入图像描述

更新:

我也试过这样做.超级简单.我仍然得到相同的结果.帧大小设置为这样,以便我可以看到玩家实际上已被添加.

            let streamURL = NSURL(string: "http://www.thumbafon.com/code_examples/video/segment_example/prog_index.m3u8")
            var streamPlayer = MPMoviePlayerController(contentURL: streamURL)
            streamPlayer.view.frame = CGRect(x: 10, y: 10, width: 200, height: 200)
            streamPlayer.controlStyle = MPMovieControlStyle.Embedded
            videoView.addSubview(streamPlayer.view)
            streamPlayer.play()
Run Code Online (Sandbox Code Playgroud)

bzm*_*zmw 4

我最终放弃了 MPMoviePlayerController 并选择使用 AVFoundation。

工作示例:

全球声明:

var player : AVPlayer? = nil
var playerLayer : AVPlayerLayer? = nil
var asset : AVAsset? = nil
var playerItem: AVPlayerItem? = nil
Run Code Online (Sandbox Code Playgroud)

viewDidLoad 内部:

            let videoURLWithPath = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
            let videoURL = NSURL(string: videoURLWithPath)

            asset = AVAsset.assetWithURL(videoURL) as? AVAsset
            playerItem = AVPlayerItem(asset: asset)

            player = AVPlayer(playerItem: self.playerItem)

            playerLayer = AVPlayerLayer(player: self.player)
            playerLayer!.frame = videoView.frame
            videoView.layer.addSublayer(self.playerLayer)

            player!.play()
Run Code Online (Sandbox Code Playgroud)