Swift 中的 MPMoviePlayerController

Posted

技术标签:

【中文标题】Swift 中的 MPMoviePlayerController【英文标题】:MPMoviePlayerController in Swift 【发布时间】:2014-07-23 15:30:40 【问题描述】:

我有这段代码,但它只显示一个黑框。

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    var filepath: NSString = NSBundle.mainBundle().pathForResource("Akbar_ipad", ofType: "mp4")
    var fileURL: NSURL = NSURL(string: filepath)
    let moviePlayerController = MPMoviePlayerController(contentURL: fileURL)

    moviePlayerController.shouldAutoplay = true
    moviePlayerController.movieSourceType = MPMovieSourceType.File


    moviePlayerController.view.frame = CGRect(x: 200, y: 200, width: 500, height: 300)



    self.view.addSubview(moviePlayerController.view)

    moviePlayerController.prepareToPlay()
    moviePlayerController.play()

    ...

您知道如何解决我的问题吗?我要疯了!

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

我也有类似的问题:How to load MPMoviePlayerController contentUrl asynchronous when loading view?

但这里有一些想法给你:

    可能 url 构造不正确/不是本地的。尝试使用:let fileURL = NSBundle.mainBundle().URLForResource("Akbar_ipad", withExtension: "mp4")

    您可能需要一个全局变量来保存对电影播放器​​实例的引用(如文档中所述。

【讨论】:

我不明白为什么 NSBundle.mainBundle().pathForResource 不起作用而 NSBundle.mainBundle().URLForResource 起作用。谢谢:)【参考方案2】:

对于您的问题,您可能忘记将资源添加为“捆绑资源” 按照以下步骤添加:

    在项目导航器中选择您的项目根目录 选择“构建阶段”选项卡 在“捆绑资源”部分单击“+”添加您的资源

之后我认为您可以同时使用URLForResourcepathForResource

【讨论】:

以上是关于Swift 中的 MPMoviePlayerController的主要内容,如果未能解决你的问题,请参考以下文章

swift中的mutating

Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符

swift: Swift 中的 SnapKit 不起作用

swift中的 isKindofClass

swift Swift中的变量

swift Swift中的数组