use*_*004 9 ios avplayer avasset swift avplayeritem
我找到了通过URL播放视频的三种方式。
let url = "some url"
// first way
AVPlayer(url: url)
// second way
let playerItem = AVPlayerItem(url: url)
AVPlayer(playerItem: playerItem)
// third way
let asset = AVAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
AVPlayer(playerItem: playerItem)
Run Code Online (Sandbox Code Playgroud)
以上这些有什么区别吗?
该方法隐式创建一个
AVPlayerItem对象。您可以使用 获取播放器项目currentItem。
因此我们知道,当您使用第一种方式时,会在幕后发生与第二种方式类似的情况 -AVPlayerItem将使用您指定的 URL 创建一个。因此,第一种方式和第二种方式是相同的。
尽管文档没有明确说明这一点,但我很确定也会使用您指定的 URLAVPlayerItem.init(url:)创建一个,因为 an是:AVAssetAVPlayerItem
用于对玩家播放的资产的计时和呈现状态进行建模的对象。
该措辞表明,如果没有 a 就不能有AVPlayerItema AVAsset。事实上,AVPlayerItem.asset是一个非可选属性。所以你确实需要一个AVAsset来创建一个AVPlayerItem. 再加上它AVPlayerItem.init(url:)是一个方便的初始化器,并且init(asset:automaticallyLoadedAssetKeys:)是指定的初始化器,我确信它也会在引擎盖下AVPlayerItem.init(url:)创建一个。AVAsset
如果您想知道为什么AVPlayer.init(playerItem:)和AVPlayerItem.init(asset:)存在,当所有三种方式都做同样的事情时,它们适用于当您想要AVPlayerItem创建 时恰好使用 s 时AVPlayer,以及当您恰好使用AVAssets 时当您想要创建一个AVPlayerItem.
| 归档时间: |
|
| 查看次数: |
2770 次 |
| 最近记录: |