AVPlayerItem
概要
プレーヤーによって再生されるアセットの時間, 表示状態を保持するモデル。KVO によってキーの監視が可能。特に重要なプロパティは status であり、再生可能状態を示す。
https://developer.apple.com/documentation/avfoundation/avplayeritem
Status
最も重要なプロパティ。KVO で監視することができる。player item が作成された時点では unknownであり、これはメディアがまだロードされておらず、再生のために enqueue もされていない状態を示す。メディアがロードされ利用できるようになった段階で、readyToPlay に移行する。
https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/responding_to_playback_state_changes
Responding to Playback State Changes - Apple Developer
ちなみに、readyToPlay はどうやらメディアロード後の初回のみでなく、バックグラウンドからフォアグラウンドに復帰した際にも呼び出されるらしい?
設定
ピッチの設定
audioTimePitchAlgorithm は、音声のピッチを管理するのに利用される処理アルゴリズムを設定する。音声とは言いつつ、音声に映像も引っ張られるので、映像の速度変更などにも関わってくる。
iOS だとデフォルトで AVAudioTimePitchAlgorithmLowQualityZeroLatency になる。
table:pitch
設定名 概要
LowQualityZeroLatency 低品質。低品質音声に適している。rate は丸められる
TimeDomain 声に適している。1/23~32 の間の rate を利用する
Spectral 高品質。音楽に適している。1/23~32 の間の rate を利用する
Varispeed 高品質。ピッチ補正がない。1/23~32 の間の rate を利用する
https://developer.apple.com/documentation/avfoundation/avplayeritem/1385855-audiotimepitchalgorithm?language=objc
https://developer.apple.com/documentation/avfoundation/avplayeritem/1385855-audiotimepitchalgorithm?language=objc