0

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

资源部分的捆绑路径的字符串完全正确,因此拼写错误不是问题或任何问题。当我在“if path”块上放置一个断点时,虽然它没有被调用。这是因为确实加载并且“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()
    }
4

2 回答 2

1

奇怪的是,如果moviePath你说的不是 nil,你的代码应该可以工作。检查这种方式:

if let moviePath != nil {
       ...
}

更新

检查您的视频文件是否Target Membership已设置

于 2015-11-12T20:33:09.983 回答
0

编辑(2015 年 11 月 13 日) - 试试这个:

右键单击,从项目导航器中删除视频文件,选择移至垃圾箱。

然后将视频从查找器拖回您的项目导航器。

选择添加这些文件的选项时:

  • 如果需要,请检查复制项目
  • 检查添加到目标

重建您的项目,看看它现在是否有效!

我已经包含了适用于我的示例代码:

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 媒体播放器、Quicktime 等一起使用。它需要重新编码。

iOS 支持许多行业标准的视频格式和压缩标准,包括:

H.264 视频,最高 1.5 Mbps,640 x 480 像素,每秒 30 帧,H.264 基线配置文件的低复杂度版本,具有最高 160 Kbps 的 AAC-LC 音频,48 kHz,.m4v 立体声音频, .mp4 和 .mov 文件格式 H.264 视频,最高 768 Kbps,320 x 240 像素,每秒 30 帧,Baseline Profile 最高 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 文件格式多种音频格式,包括音频技术中列出的格式

于 2015-11-12T21:44:38.183 回答