AVPlayerViewController 适用于 iOS8 但不适用于 IOS7

Posted

技术标签:

【中文标题】AVPlayerViewController 适用于 iOS8 但不适用于 IOS7【英文标题】:AVPlayerViewController works in iOS8 but not in IOS7 【发布时间】:2015-04-06 22:38:25 【问题描述】:

我一直试图让它工作一段时间,但我似乎无法弄清楚问题所在。此代码在 ios8 上运行良好,但在 IOS7 中出现错误。当我跟随调试导航器时,我可以看到这个错误。 在调试区域我只得到一个(lldb)错误

Thread 1: EXC_BAD_ACCESS (code=1, address=0x10)

这是我(在 IOS8 上)videoViewController 的工作代码

import UIKit
import AVKit
import AVFoundation
import MediaPlayer

class VideoVC: UIViewController 
override func viewDidLoad() 
    super.viewDidLoad()

    var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")!
    let player = AVPlayer(URL: url)
    let playerController = AVPlayerViewController()

    playerController.player = player
    self.addChildViewController(playerController)
    self.view.addSubview(playerController.view)
    playerController.view.frame = self.view.frame

    player.play()


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.


【问题讨论】:

添加异常断点以确定程序在哪一行崩溃。 就是这一行 -> let playerController = AVPlayerViewController() 【参考方案1】:

AVPlayerViewController 已作为 AVKit 的一部分在 iOS8 中引入。如果需要支持较早的 iOS 版本,则需要改用 MPMediaPlayerViewController。

它在 AVPlayerViewController 文档页面的文档 - 通知可用性部分中披露: https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayerViewController_Class/

如果您对媒体播放感兴趣,还可以观看 WWDC 2014 Session 513: http://devstreaming.apple.com/videos/wwdc/2014/503xx50xm4n63qe/503/503_hd_mastering_modern_media_playback.mov?dl=1

【讨论】:

以上是关于AVPlayerViewController 适用于 iOS8 但不适用于 IOS7的主要内容,如果未能解决你的问题,请参考以下文章

iOS:AVPlayerViewController 视图未删除

检测 AVPlayerViewController 完成按钮点击?

AVPlayerViewController 不按 url 播放视频

iOS - 在 AVPlayerViewController 之上添加控件

在 AVPlayerViewController 中禁用手势识别器

在 AVPlayerViewController 中点击播放按钮时执行操作