2011-10-06 5 views
1

배경 음악을 켜는 것과 관련된 iPhone IOS 앱을 개발합니다. 이 목적으로 AVFoundation과 AVAudioPlayer를 선택하기로 결정했습니다. 이 클래스의AVFoundation IOS : 배경 음악 재생

// AVMusicController.h 

#import <AVFoundation/AVFoundation.h> 

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

@property(nonatomic, retain) AVAudioPlayer *avMusicPlayer; 

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

@end 

및 구현 :

그래서 내가 가지고있는 두 개의 뷰 컨트롤러와 실제로 AVFramework 모든 방법이 기록 된 뮤직 컨트롤러 하나 NSObject의 컨트롤러입니다.

그래서보기가로드 될 때 첫 번째보기 컨트롤러가 배경 음악을 켜고 (내가 관리하는 경우) 두 번째보기 컨트롤러가 제어하는 ​​다른보기로 이동하는 단추가 있습니다. 두 번째 버튼에는 음악을 음소거하는 버튼이 있습니다. 그래서 여기 내 문제가 있습니다 : 두 번째보기 컨트롤러에 AVMusicController로드, 두 번째보기 xib 파일에서 nsobject 만들기, 컨트롤러를 AVMusic 컨트롤러로 변경하고 파일 소유자에게 연결합니다.

하지만 코드를 작성할 때 :

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

그것은 음악을 음소거하지 않습니다. 첫 번째보기 컨트롤러 (음악을 켜는)에서 동일한 작업을 수행 할 때 : 버튼을 만들고 동일한 코드를 작성하면 모든 것이 작동합니다.

제발,이 문제에 대한 아이디어를 제안 해주세요. 귀하의 관심에 감사드립니다.

내 질문의 어떤 부분이 사용자를 혼란스럽게하는 경우 알려 주시면 변경하겠습니다. 미리 감사드립니다.

답변

1

컨트롤러 클래스 연결 대신 NotificationCenter를 사용할 수 있습니다. 기본적으로 첫 번째 뷰 컨트롤러에 옵저버를 추가하고 사용자가 음소거 버튼을 터치하면 알림 센터를 통해 첫 번째보기로 알림을 보냅니다.

이 질문을 확인할 수도 있습니다. Objective-C - where to put the NSNotificationCenter?