未调用AVPlayer pathForResource

时间:2015-11-12 20:21:49

标签: swift2 ios9 avplayer avplayerviewcontroller

我有应用程序欢迎屏幕的视频背景但是当我只运行时出现一个空白屏幕。

资源部分的包路径的字符串是完全正确的,所以输入错误不是问题或任何问题。当我在" 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()
    }

2 个答案:

答案 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

中列出的格式