1

ゲームの最後に短いビデオを再生する必要があります。

前のビュー コントローラーからのセグエを使用して、モーダル プレゼンテーションでストーリーボードに AVPlayerViewController を作成しました。

ただし、ビデオが画面全体をカバーしないようにします。画面サイズの 50% (中央) としましょう。

これが私が試したコードです:

import AVKit
import AVFoundation
import UIKit

class VideoPlayerViewController: AVPlayerViewController {

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewDidAppear(animated: Bool) {
    // Play video
    player?.play()
}

override func viewDidLayoutSubviews() {
    print(videoBounds)
    self.view.bounds = videoBounds
}

}

問題は、画面全体のビデオ スケールが非常に小さいことです (約 100*70px など)。デフォルトのサイズはある時点で 100*100 であり、ビデオの比率に合わせてスケーリングされると思います。

境界を指定しないと、画面全体にスケーリングされます (ビデオの重力により選択できません)。

viewDidLayoutSubviews でビュー全体のサイズを小さくしても、このメソッドが複数回呼び出されるため、ビューの境界を変更し続けるため、まだ問題があります。

AVPlayerViewController を使用して画面の一部にローカル ビデオを表示するのがどれほど難しいか信じられません...

助けはありますか?

4

2 に答える 2