

AVPlayerViewControllerを使用して動画を再生する画面を構築しています。  
普通に再生する分には問題ないのですが、  
プレイヤーのコントローラの右端にある全画面モードの切り替えボタンから動画を全画面再生に移行し  
再度通常のサイズに復帰させると大量のメモリリークが発生します。

手元の環境(Xcode8.0、Swift2.3、iPhone 6s)で以下のようなコードで再現します。

[code]

    import UIKit
    import AVKit
    import AVFoundation
    
    class MoviePlayViewController: UIViewController {
    
      var playerViewController: AVPlayerViewController!
    
      override func viewDidLoad() {
        super.viewDidLoad()
    
        self.playerViewController = AVPlayerViewController()
        self.playerViewController.view.frame = CGRectMake(0, 64, 320, 240)
    
        let path = NSBundle.mainBundle().pathForResource("hoge", ofType: "mp4")
        let url = NSURL(fileURLWithPath: path!)
    
        self.playerViewController.player = AVPlayer(URL: url)
        self.view.addSubview(self.playerViewController.view)
        self.addChildViewController(self.playerViewController)
        self.playerViewController.didMoveToParentViewController(self)
      }
    
      override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
      }
    }
    
[/code]

リークの内容は以下のような感じです。  
[![画像の説明をここに入力](https://i.stack.imgur.com/9sOqN.png)](https://i.stack.imgur.com/9sOqN.png)

AVKitのリーク箇所詳細。  
[![画像の説明をここに入力](https://i.stack.imgur.com/d9TXA.png)](https://i.stack.imgur.com/d9TXA.png)

実装方法に問題があるのかAVPlayerViewController側の問題なのか判断ができずにいるため、  
ご存知の方がいらっしゃれば原因、解決策をご教示いただきたいです。  
宜しくお願いします。


CC BY-SA 3.0
2016-10-19T02:19:03.450
29684
2017-01-05T05:27:08.210
2016-10-19T02:33:31.153
19220
19220
question
swift ios memory-leaks
AVPlayerViewControllerでフルスクリーン動画再生時のメモリリーク


こちらでも実機を使って再現しました。AppleのSDKのバグだと思います。<https://bugreporter.apple.com>
から報告することをお勧めします。

なお `var playerViewController: AVPlayerViewController`
はstrong参照でなくてもいいと思ったのでweakのOptionalにしてみましたが、メモリリークは消えませんでした。

現状でメモリリークを回避するには、AVPlayerViewControllerを使わず自前でAVPlayerLayerを使ってプレイヤーをスクラッチする必要があると思います。


CC BY-SA 3.0
2016-10-23T12:36:10.407
29836
2016-10-23T12:36:10.407
257
29684
answer


本件、Apple Bug Reporterから報告していたのですが、  
重複扱いでクローズするよ、という返信が今日ありました。

重複先は「Duplicate of 29519477 (Closed)」となっていたので、  
多分解決されたのだと思います。次のリリースには入るのかな？

以上、情報共有でした。


CC BY-SA 3.0
2017-01-05T05:27:08.210
31630
2017-01-05T05:27:08.210
20106
29684
answer