以下是我播放视频的代码。如果我点击一个按钮,那么它会调用一个方法,该方法包含播放视频的代码段:
if let urlStr = NSBundle.mainBundle().pathForResource("into_main_v3", ofType: "mp4")
{
let url = NSURL(fileURLWithPath: urlStr)
print(url)
player = AVPlayer(URL: url)
videoNode = SKVideoNode(AVPlayer: player!)
videoNode?.position = CGPointMake(frame.size.width/2, frame.size.height/2)
videoNode?.size = CGSize(width: self.size.width, height: self.size.height)
videoNode?.zPosition = 1
addChild(videoNode!)
videoNode!.play()
}
我在控制台中打印了这条消息::调用-display无效。
当我单击按钮时,它会转到此方法,但永远不会超出urlStr变量。我三重检查,资源在我的项目中可用于mp4视频,但它仍然无法运行!它不在任何文件夹中,路径是正确的。它之前有效,但突然间它不起作用,不明白为什么!
修改
问题解决了:问题在于在构建阶段复制mp4文件以确保将其复制到iPad中。
答案 0 :(得分:1)
因此,当我试图找出答案时,我有几处错误……首先,我的URL不正确,因此我将检查以确保它是正确的(文件名错误)。其次,当我加载视频时,我使用的是.mov扩展名,该扩展名对我不起作用。我将其更改为.mp4,并加载了视频。第三,视频的显示与您将其放置在场景中的位置有很大关系。我不能从上述代码示例中了解到您的场景,但是确保使用正确的坐标和大小正确放置视频节点非常重要,否则它将不会显示。我会尝试将您的大小更改为(1,1),然后查看是否显示出来。
答案 1 :(得分:0)
Swift 5的更新,因为CGPointMake和其他一些已经过时了:
if let urlStr = Bundle.main.path(forResource: "into_main_v3", ofType: "mp4")
{
let url = NSURL(fileURLWithPath: urlStr)
print(url)
let player = AVPlayer(url: url as URL)
let videoNode = SKVideoNode(avPlayer: player)
videoNode.position = CGPoint(x: frame.size.width/2, y: frame.size.height/2)
videoNode.size = CGSize(width: self.size.width, height: self.size.height)
videoNode.zPosition = 123
addChild(videoNode)
videoNode.play()
}