AVFoundation IOS:播放背景音乐

时间:2011-10-06 19:44:46

标签: ios audio-player background-music

我开发了一款iPhone IOS应用程序,其中包括打开背景音乐。我决定为此目的选择AVFoundation和AVAudioPlayer。

所以我所拥有的是两个视图控制器和一个实际上是音乐控制器的nsobject控制器所有AVFramework方法都写在那里:

//  AVMusicController.h

#import <AVFoundation/AVFoundation.h>

@interface AVMusicController : NSObject <AVAudioPlayerDelegate>
{
    AVAudioPlayer *avMusicPlayer;
}

@property(nonatomic, retain) AVAudioPlayer *avMusicPlayer;

-(void)playMusic;
-(void)muteMusic;
-(void)unMuteMusic;

@end

此类的实现。

因此第一个视图控制器在视图加载时打开背景音乐(我设法这样做)并且它有一个按钮转到由第二个视图控制器控制的另一个视图。第二个按钮用于静音音乐。所以这是我的问题:我将AVMusicController加载到第二个视图控制器,在第二个视图xib文件中创建nsobject,将其控制器更改为AVMusic控制器并连接到文件的所有者。

但是当我写代码时:

-(IBAction)buttonPressed:
{    
    [self.avMusicController muteMusic];
}

它不会使音乐静音。虽然,当我在第一个视图控制器(打开音乐)时也这样做:创建一个按钮并编写相同的代码 - 一切正常。

请告诉我有关此问题的任何想法。感谢您的关注。

如果我的问题的任何部分让您感到困惑,请告诉我,我会更改它。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用NotificationCenter而不是控制器级连接。基本上将观察者添加到第一个视图控制器,当用户触摸静音按钮时,通过notificationcenter向第一个视图发送通知。

您也可以查看此问题。 Objective-C - where to put the NSNotificationCenter?