我有多个AVPlayers
,每个UIViewControllers
分别播放不同的歌曲
每当我播放另一个时,我需要暂停一个AVPlayer
(否则音频重叠)。
我想让用户在后台播放音乐时遍历应用,因此暂停AVPlayer
上的viewDidDisappear:(BOOL)animated
将无效。
访问每个单独AVPlayer
的控件的最佳方法是什么?
答案 0 :(得分:1)
在我看来,只有1个AVPlayer的单身人士很好地解决了这个问题。这样你就可以保证播放另一首歌,你必须停止前一首歌。然后,在该AVPLayerSingleton中,您有一个名为avPlayer的私有属性。您可以定义两种方法:
- (void)createPlayerWithSong:(NSString *)currentSong;
- (void)destroyPlayer
然后,在你的createPlayerWithSong中,你可以检查是否已经创建了avPlayer并将其销毁并为每首新歌创建一个新的。
答案 1 :(得分:0)
您可以做的几种方式:
创建一个共享单例对象,该对象具有引用每个AVPlayer的弱属性。这样你就可以从任何地方控制它。
OR
如果要在其他视图控制器上控制AVPlayer,请使用NSNotificationCenter发送通知。如果您想要控制很多AVPlayer,这可能会很麻烦。