1

イムを進めています。録画したビデオの音声は聞こえますが、そのビデオは見えません。ビデオとオーディオの両方が動作している場合もあれば、オーディオのみのものもあります。AVPlayerLayerは、黒い画面が表示されますが、音が<em>時々</em>を作品<strong>AVPlayerLayer</strong>でローカル録画された映像を表示しようと

私はAVPlayerLayerAVPlayerViewControllerとの両方を試してみたが、同じ問題が両方のケースで発生します。フレームが間違っているからではありません。

例コードAVPlayerViewController

let player = AVPlayer(url: url) 
let playerController = AVPlayerViewController() 
playerController.player = player 

self.present(playerController, animated: true) { 
    player.play() 
} 

例コードAVPlayerLayer

let asset = AVAsset(url: url) 
let item = AVPlayerItem(asset: asset) 

self.player = AVPlayer(playerItem: item) 
self.player?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil) 
self.playerLayer = AVPlayerLayer(player: self.player!) 
self.playerLayer?.frame = imageView.bounds 
imageView.layer.addSublayer(self.playerLayer!) 

編集1:

プレーヤの状態を観察し、エラーはあります210と状態readyToPlay

編集2:

URLがリモートの場合は正常に動作します。

編集3:ビデオエクスポートを完了した後、私は数秒を待っていれば

が動作しているようです。それはファイルシステムに100%書かれていないファイルで持つべきものでしょうか?

編集4: Videoこの場合、3回目です。

+0

に等しいのです。 – matt

+0

輸出コードはここにあります。 http://pastebin.com/aiSvV6i8 –

+0

複数の動画がありますか? – matt

答えて

1

ここでは、ビデオを使用してAVPlayerLayerを設定する方法を説明します(欠けているものはvideoGravityパラメータです)。

let bundle = Bundle.main 
let moviePath = bundle.path(forResource: "myVideo", ofType: "mp4") 
let moviePlayer = AVPlayer(url: URL(fileURLWithPath: moviePath!)) 

playerLayer = AVPlayerLayer(player: moviePlayer) 
playerLayer.frame = movieView.bounds 
playerLayer.videoGravity = AVLayerVideoGravityResizeAspect 
movieView.layer.addSublayer(playerLayer) 
playerLayer.player?.play() 
+0

返事をありがとう、しかし私が言ったように、それは時々働いています。また、ビデオがリモートURLを形成している場合は常にそうです。 それはAVPlayerViewControllerの同じ問題ですから、私はそうではないと仮定しています。 –

0

これは、フレームの高さや幅が輸出コードを表示するゼロ

関連する問題