4

のインスタンスをSwiftAVPlayerItemの newに再関連付けするにはどうすればよいですか? AVPlayerイニシャライザで使用する場合。toへのすべての参照を設定した後でも、 anAVPlayerItemを別のに再割り当てしようとするたびに(したがって、ガベージ コレクションを取得する必要があります)、 anを複数のオブジェクトに割り当てることはできないと不平を言います。私はそれを回避するいくつかの方法を理解していますが、なぜこの方法がうまくいかないのか知りたいです。AVPlayerAVPlayernilAVPlayerItemAVPlayer

let player: AVPlayer = AVPlayer(playerItem: somePlayerItem)

この宣言中に何が起こるかはわかりませんが、関連付けられたプレーヤーがあることを somePlayerItem が認識できるように、どこかで何かが設定されます。これには、これに注意するオブザーバーがどこかに設定されているか、プロパティが設定されていますか?

元の参照が破棄された後、これAVPlayerItemを別のものに再割り当てする方法を知っている人はいますか? URL を使用して新しいオブジェクトを作成できることはわかっていますが、同じオブジェクトを保持できるかどうかを知りたいです。AVPlayerAVPlayerAVPlayerItem

4

1 に答える 1

6

アイテムは再利用できませんが、アセットは再利用できます。

したがって、アセットを一度作成します。

let asset=AVAsset(URL: your_url)

次に、必要に応じて新しいアイテムを作成して再利用します。

let item=AVPlayerItem(asset: asset)
let player=AVPlayer(playerItem: item)
于 2016-06-21T08:27:00.927 に答える