2011-10-06 172 views
1

我开发出包括背景音乐翻动iPhone IOS应用程序。我决定为此选择AVFoundation和AVAudioPlayer。AVFoundation IOS:播放背景音乐

所以我有什么是二视图控制器和一个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

您可以改用控制器级连接的通知中心。基本上添加一个观察者到你的第一个视图控制器,当用户触摸静音按钮时,通过通知中心发送一个通知到你的第一个视图。

您还可以检查出这个问题。 Objective-C - where to put the NSNotificationCenter?