我有应用程序欢迎屏幕的视频背景但是当我只运行时出现一个空白屏幕。
资源部分的包路径的字符串是完全正确的,所以输入错误不是问题或任何问题。当我在" if path"上放置断点时尽管它没有被调用。这是在视图中加载和" AVKit"和#34; AVFoundation"都是导入的,没有错误。
任何见解?谢谢!
let moviePath = NSBundle.mainBundle().pathForResource("Ilmatic_Wearables", ofType: "mp4")
if let path = moviePath {
let url = NSURL.fileURLWithPath(path)
let player = AVPlayer(URL: url)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
playerViewController.view.frame = self.view.bounds
self.view.addSubview(playerViewController.view)
self.addChildViewController(playerViewController)
player.play()
}
答案 0 :(得分:1)
很奇怪,如果你说moviePath
不是零,你的代码应该有用。检查一下:
if let moviePath != nil {
...
}
<强>更新强>
检查您的视频文件Target Membership
是否已设置
答案 1 :(得分:0)
编辑(2015年11月13日) - 试试这个:
右键单击,从项目导航器中删除视频文件,选择移至废纸篓。
然后将视频从finder拖回到项目导航器中。
选择添加这些文件的选项时:
重建您的项目,看它现在是否有效!
我已经提供了适用于我的示例代码:
import AVFoundation
import AVKit
class ExampleViewController: UIViewController {
func loadAndPlayFile() {
guard let path = NSBundle.mainBundle().pathForResource("filename", ofType: "mp4") else {
print("Error: Could not locate video resource")
return
}
let url = NSURL(fileURLWithPath: path)
let moviePlayer = AVPlayer(URL: url)
let moviePlayerController = AVPlayerViewController()
moviePlayerController.player = moviePlayer
presentViewController(moviePlayerController, animated: true) {
moviePlayerController.player?.play()
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
loadAndPlayFile()
}
}
/编辑
检查视频文件是否在iTunes中播放。如果它在iTunes中播放,它也应该在iOS模拟器和设备上播放。
如果它没有在iTunes中播放,但可以与VLC Media Player,Quicktime等一起使用。需要重新编码。
iOS支持许多行业标准视频格式和压缩标准,包括以下内容:
H.264视频,高达1.5 Mbps,640 x 480像素,每秒30帧,H.264基线配置文件的低复杂度版本,AAC-LC音频高达160 Kbps,48 kHz,立体声音频输入.m4v,.mp4和.mov文件格式 H.264视频,高达768 Kbps,320 x 240像素,每秒30帧,基线配置文件高达1.3级,AAC-LC音频高达160 Kbps,48 kHz,立体声音频,.m4v,.mp4和。 mov文件格式 MPEG-4视频,高达2.5 Mbps,640 x 480像素,每秒30帧,简单配置文件,AAC-LC音频高达160 Kbps,48 kHz,立体声音频,.m4v,.mp4和.mov文件格式 多种音频格式,包括Audio Technologies
中列出的格式