當我們在使用今日頭條或者UC頭條的時候,會發(fā)現(xiàn)點擊cell上的視頻播放一段時間后,再點擊cell上的評論會跳到另外一個控制器,但是視頻播放的位置和緩存的進度跟第一級控制器cell上位置一模一樣,看起來就像是2個控制器共用一個視頻播放器,這種無縫切換的效果用戶體驗很好,做法其實只需公用一個AVURLAsset就可以做到。
AVPlayer的創(chuàng)建
self.urlAsset =[AVURLAsset assetWithURL:URL];
使用AVURLAsset然后將asset對象導入到AVPlayerItem中
self.item=[AVPlayerItem playerItemWithAsset:self.assert];
再將item對象添加到AVPlayer中
self.player=[[AVPlayer alloc]initWithPlayerItem:self.item];
比直接使用AVPlayer初始化方法播放URL如
self.player=[[AVPlayer alloc]initWithURL:url];
的好處是,self.urlAsset可以記錄緩存大小,而直接使用AVPlayer初始化URL不利于多個控制器更好的銜接緩存大小。而接下來,點擊跳轉(zhuǎn)到下一頁面播放的時候,依然創(chuàng)建AVPlayer,只需共享同一資源并且同時seekToTime即可實現(xiàn)。

屏幕快照 2017-10-20 下午2.08.21.png