ios - AVPlayer 不播放本地 mp4

标签 ios swift avfoundation avplayer avplayerlayer

我正在尝试使用 AVPlayer 播放已在我的应用中录制的视频。但是,播放器不会播放视频。我知道这是一个正确录制的 mp4 文件,因为我可以在我的 Mac 上播放它。这是播放器的设置:

let documents = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!
let URL = NSURL(fileURLWithPath: "tempVideo", relativeToURL: documentsDirectory)
let asset = AVAsset(URL: URL)
let item = AVPlayerItem(asset: asset)

//videoPlayer is a property on the view controller being used
videoPlayer = AVPlayer()

//videoPlayerLayer is a property on the view controller being used
videoPlayerLayer = AVPlayerLayer(player: videoPlayer)
videoPlayerLayer.frame.size = view.frame.size
videoPlayerLayer.backgroundColor = UIColor.redColor().CGColor

view.layer.addSublayer(videoPlayerLayer!)

//wait 5 seconds

videoPlayer.play()

我确信 videoPlayer 实际上已准备好播放,因为我已经检查了它的 status 属性。我还知道 videoPlayerLayer 已正确添加到 view.layer,因为它可见并占据了整个屏幕。当我调用 videoPlayer.play() 时,设备上的音乐停止播放,但是 videoPlayerLayer 没有显示任何内容。

有什么想法吗?预先感谢您的帮助!

编辑:我忘记证明 videoPlayerLayer 确实连接到 videoPlayer,我已经更新了我的问题以反射(reflect)这一点。

最佳答案

@Dershowitz123 给出了正确答案,但他或她在评论中留下了答案,因此我无法将其标记为正确。解决方案是更改 URL 以包含 .mp4 扩展名。感谢您的帮助。

关于ios - AVPlayer 不播放本地 mp4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37887417/

相关文章:

iphone - 展开 UITableViewstylePlain 中的 UITableView 单元格

objective-c - 选择 UITableView 中的单元格时更新 UILabel

ios - 无法在发布架构中运行 iOS React Native 应用程序

ios - 将ViewController的uiview换成xib

ios - AVAssetTrack 的 Assets 属性有时为零

ios - RestKit 添加属性映射和关系映射

ios - 带有突出显示底部边框的 UIButton

swift - SFSpeechRecognizer 不可用

ios - 使用 avfoundation 时 - 裁剪在显示层中表示的捕获图像的可见部分

ios - 无法检测全屏 AVPlayerViewController 转换