我有一个视频背景的欢迎屏幕的应用,但当我运行时,只有一个空白的屏幕出现。
资源部分的包路径的字符串是完全正确的,所以错误不是问题,也不是任何问题。当我在"if path“块上放置一个断点时,尽管它没有被调用。考虑到这一点,did load和"AVKit“和"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()
}发布于 2015-11-12 20:33:09
奇怪的是,如果moviePath没有像您所说的那样为零,那么您的代码应该可以工作。检查这条路:
if let moviePath != nil {
...
}更新
检查是否设置了视频文件的Target Membership
发布于 2015-11-12 21:44:38
编辑(11/13/2015) -尝试如下:
右键单击,从项目导航器中删除视频文件,选择“移动到垃圾”。
然后将视频从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()
}
}/edit
检查视频文件是否在iTunes中播放。如果它在iTunes中播放,它还应该在iOS模拟器和设备上播放。
如果它不在iTunes中播放,但与、Quicktime等一起工作,则需要重新编码。
iOS支持许多行业标准的视频格式和压缩标准,包括: H.264视频,最高1.5Mbps,640×480像素,每秒30帧,低复杂度版本的H.264基线配置文件,AAC-LC音频高达160 Kbps,48 kHz,立体声.m4v,.mp4,.mov文件格式H.264视频,高达768 Kbps,320乘240像素,每秒30帧,基线配置文件1.3级,AAC-LC音频高达160 Kbps,48 kHz,.m4v,.mp4和.mov文件格式MPEG-4视频,高达2.5 Mbps,640×480像素,每秒30帧,AAC-LC音频高达160 Kbps,48 kHz,立体声.m4v,.mp4和.mov文件格式的立体声,包括音频技术中列出的音频格式。
https://stackoverflow.com/questions/33680599
复制相似问题