AVPlayerで動画を再生する時の小ネタ


備忘録を兼ねた,タイトル通りの小ネタです.

動画再生用のレイヤーとビューのサイズを揃える

layerClassをオーバーライドし,AVPlayerLayerを返すようにする.
あわせて,layer自体も変更しておくと取得が楽.

import UIKit
import AVFoundation

class VideoContainerView: UIView {
    override class var layerClass: AnyClass {
        return AVPlayerLayer.self
    }

    override var layer: AVPlayerLayer {
        return super.layer as! AVPlayerLayer
    }

    func set(player: AVPlayer) {
        self.layer.player = player
    }
}

他アプリで再生中の音声への割り込みを禁止する

AVAudioSessionのCategoryを変更する

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
} catch let e {
    // Error handling
}