单独的UIViewControllers上的多个AVPlayers

时间:2013-11-05 17:50:51

标签: ios objective-c uiviewcontroller avfoundation avplayer

我有多个AVPlayers,每个UIViewControllers分别播放不同的歌曲 每当我播放另一个时,我需要暂停一个AVPlayer否则音频重叠)。
 我想让用户在后台播放音乐时遍历应用,因此暂停AVPlayer上的viewDidDisappear:(BOOL)animated将无效。
 访问每个单独AVPlayer的控件的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

在我看来,只有1个AVPlayer的单身人士很好地解决了这个问题。这样你就可以保证播放另一首歌,你必须停止前一首歌。然后,在该AVPLayerSingleton中,您有一个名为avPlayer的私有属性。您可以定义两种方法:

- (void)createPlayerWithSong:(NSString *)currentSong;
- (void)destroyPlayer

然后,在你的createPlayerWithSong中,你可以检查是否已经创建了avPlayer并将其销毁并为每首新歌创建一个新的。

答案 1 :(得分:0)

可以做的几种方式:

创建一个共享单例对象,该对象具有引用每个AVPlayer的弱属性。这样你就可以从任何地方控制它。

OR

如果要在其他视图控制器上控制AVPlayer,请使用NSNotificationCenter发送通知。如果您想要控制很多AVPlayer,这可能会很麻烦。