###SpriteKitをベースにMacアプリを構築
Macで動かすためのスライドショーのようなアプリを作っています。
Cocoa Applicationをベースにして、SpriteKitを取り入れてSceneを5個加えてループ再生するようにしています。Sceneによっては画像を貼り付けただけのものや、PNGを貼り付けて動かしたりしています。
###発生している問題
この中でフル画面で動画を再生するSceneがあるのですが、そのSceneにカットで切り替わり再生が始まる前に、必ず黒い画面が入ってしまいます。このSceneは黒いバックにQuickTimeファイルをaddChildでしているだけのシンプルな構成です。
黒い画面が10frame程度冒頭に出てしまうのは、backgroudカラーであることは確認できました。
何か試してみることなどありましたら、アドバイスいただけると幸いです。よろしくお願い致します。
###該当のソースコード
import SpriteKit
import AVFoundation
class Scene01: SKScene {
let moviePath: String = "/Users/Shared/Movie.mov" override func didMove(to view: SKView) { let url = NSURL.fileURL(withPath: moviePath) let asset = AVAsset(url: url) let playerItem = AVPlayerItem(asset: asset) let avPlayer = AVPlayer(playerItem: playerItem) avPlayer.actionAtItemEnd = AVPlayerActionAtItemEnd.none let videoNode: SKVideoNode! = SKVideoNode(avPlayer: avPlayer) videoNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY) videoNode.size = CGSize(width: 1920, height: 1080) self.insertChild(videoNode, at: 0) videoNode.play() }
}
###試したこと
動画ファイルの読み込みに時間が必要で間に合わないのかと思い、別のClassを作成して事前に読み込みを済ませてみたのですが、それでも改善されませんでした。
###補足情報(バージョンなど)
macOS 10.12.5
Xcode 8.3.3
Swift
あなたの回答
tips
プレビュー