sno*_*839 4 ios avplayer swift avplayeritem
如何在 Swift 中将的实例AVPlayerItem与 new重新关联AVPlayer?在初始化程序中使用时。每次我试图重新分配AVPlayerItem到不同的AVPlayer我已经设置所有引用即使AVPlayer到nil(所以它应该得到收集的垃圾),它抱怨说,一个AVPlayerItem不能被分配到超过1个AVPlayer对象。我了解一些绕过它的方法,但我想知道为什么这种方法不起作用。
let player: AVPlayer = AVPlayer(playerItem: somePlayerItem)
Run Code Online (Sandbox Code Playgroud)
我不知道在这个声明过程中会发生什么,但是某处设置了一些东西来允许 somePlayerItem 知道它有一个关联的玩家。这是否在某处设置了一些观察者或设置了会注意到这一点的属性?
有没有人知道在原始引用被销毁后将其重新分配AVPlayerItem给不同的方法?我知道我可以使用 URL创建一个新对象,但我想知道是否可以保留相同的对象。AVPlayerAVPlayerAVPlayerItem
您不能重复使用项目,但可以重复使用资产。
因此,创建您的资产一次:
let asset=AVAsset(URL: your_url)
Run Code Online (Sandbox Code Playgroud)
然后在需要时通过创建一个新项目来重用它:
let item=AVPlayerItem(asset: asset)
let player=AVPlayer(playerItem: item)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4847 次 |
| 最近记录: |