Ios 独立UIViewController上的多个AVP播放器
我有多个Ios 独立UIViewController上的多个AVP播放器,ios,objective-c,uiviewcontroller,avfoundation,avplayer,Ios,Objective C,Uiviewcontroller,Avfoundation,Avplayer,我有多个avplayer,每个播放器都在不同的UIViewControllers上播放不同的歌曲。 每当我播放另一个时,我需要暂停一个AVPlayer(否则音频重叠)。 我想让用户在后台播放音乐的同时浏览应用程序,因此在viewdide:(BOOL)animated上暂停AVPlayer,将不起作用。 访问每个单独的AVPlayer控件的最佳方式是什么?您可以采用以下几种方式: 创建一个共享单例对象,该对象具有引用每个AVPlayer的弱属性。这样你就可以在任何地方控制它 或 当您希望在其他视图
avplayer
,每个播放器都在不同的UIViewControllers
上播放不同的歌曲。每当我播放另一个时,我需要暂停一个
AVPlayer
(否则音频重叠)。我想让用户在后台播放音乐的同时浏览应用程序,因此在
viewdide:(BOOL)animated
上暂停AVPlayer
,将不起作用。访问每个单独的
AVPlayer
控件的最佳方式是什么?您可以采用以下几种方式:
创建一个共享单例对象,该对象具有引用每个AVPlayer的弱属性。这样你就可以在任何地方控制它
或
当您希望在其他视图控制器上控制AVPlayer时,请使用NSNotificationCenter发送通知。如果你想控制很多AVPlayer,这可能会变得很麻烦。在我看来,只有一个AVPlayer的单身汉很好地解决了这个问题。这样,您可以保证播放另一首歌曲时必须停止前一首歌曲。然后,在AVPLayerSingleton中,您有一个名为avPlayer的私有财产。您可以定义两种方法:
- (void)createPlayerWithSong:(NSString *)currentSong;
- (void)destroyPlayer
然后,在createPlayerWithSong中,您可以检查是否已经创建了avPlayer并销毁它,然后为每首新歌创建一首新歌曲。这并不完全是您想要或需要的,但检查此示例,它可能会提供一些指导:销毁avPlayer是否会阻止我继续我停止的歌曲?我想暂停它,而不是杀死它。是的,它会的。您可以节省您停止或拥有更多AVP播放器的时间。然而,我仍然相信单身是一个不错的选择。