gpt4 book ai didi

ios - 加载 View 时如何异步加载MPMoviePlayerController contentUrl?

转载 作者:行者123 更新时间:2023-11-28 07:17:13 27 4
gpt4 key购买 nike

我尝试使用 MPMoviePlayerController 播放视频。设置是:我推送一个新的 ViewController,然后在 viewDidLoad 中设置 View 和电影播放器​​实例,然后使用 NSURLSession.sharedSession().dataTaskWithURL() 加载电影的 REST 资源以提供 URL。在完成 block 中,我将电影播放器​​实例的 contentUrl 设置为此 url 并播放。但是,电影画面保持黑色。如果我将 contentUrl 硬编码为 viewDidLoad、viewWillAppear 或 viewDidAppear 中的 url,则电影显示效果很好。errorLog 和 accessLog 都是 nil。所以我假设电影 contentUrl 的异步 url 加载和分配有问题。

设置:Swift、Xcode 6 beta、iOS 8。

下面是一些代码片段:

class PresentationsViewController {

override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
let presentationViewController = PresentationViewController(presentations[indexPath.row])
navigationController.pushViewController(presentationViewController, animated: true)
}

}

class PresentationViewController {

var presentation: Presentation?
var moviePlayer: MPMoviePlayerController?

convenience init(_ presentation: Presentation) {
self.init()
self.presentation = presentation
}

override func viewDidLoad() {
super.viewDidLoad()

moviePlayer = MPMoviePlayerController()
moviePlayer!.view.frame = CGRect(x: X, y: Y, width: W, height: H)
moviePlayer!.movieSourceType = MPMovieSourceType.Unknown
moviePlayer!.controlStyle = MPMovieControlStyle.Embedded

NSURLSession.sharedSession().dataTaskWithURL(presentation.url) { data, response, error in
// Some JSON parsing etc.

self.moviePlayer!.contentURL = presentation.videoUrl
self.moviePlayer!.prepareToPlay()
self.moviePlayer!.play()
}.resume()

view.addSubview(moviePlayer.view)

}
}

最佳答案

我不确定这是 Swift 测试版还是 iOS 8 测试版中的错误,但更改代码以使用 AVPlayer 是可行的。

import AVFoundation
import AVKit

let playerViewController = AVPlayerViewController()

// In async block:

if let player = AVPlayer.playerWithURL(url) as? AVPlayer {
playerViewController.player = player
}

关于ios - 加载 View 时如何异步加载MPMoviePlayerController contentUrl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25117568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com