2016-12-05 1 views
0

음악을 재생하는 AVAudioPlayer 인스턴스가 있습니다. 인스턴스 내 메인 윈도우의 기본 뷰 컨트롤러에 - 그렇지 아주 멋진이지만, 그것은 작동합니다새로운 NSView가 추가되면 AVAudioPlayer 재생이 중지됩니다.

.H

@interface ViewController() { 
    AVAudioPlayer *music; 
} 
@end 

으로하는 .m에

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    music = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/music01.mp3", [[NSBundle mainBundle] resourcePath]]] error:nil]; 
    [music playAtTime:0]; // play from start 
    [music prepareToPlay]; 
} 

-(void)playMusic { 
    if (music) { 
     [music play]; 
    } 
} 

지금까지 너무 좋아. 단, 뷰를 (프로그램 적으로, 자체 NSViewController와 함께) 메인 뷰에 추가하면 음악이 중단됩니다. 갑자기. 이게 정상인가? 나는 무엇을 잘못 했는가?

+0

주어진 코드 줄을 사용하여 말할 수 없습니다. –

답변

0

내 직관은 그보기가 창에 추가되면 어떻게 든 AVAudioPlayer 인스턴스에서 중지를 호출한다는 것입니다. 이것을 디버깅 할 수있는 많은 방법이 있지만, stop 메서드에서 기호 중단 점 (이 경우 중단 점에 대한 자세한 내용은 여기를 참조 할 수 있음)을 넣고 어디에서 호출되는지 확인합니다. 또한 새보기를 추가 할 때 viewDidLoad을 다시 호출하지 않았는지 확인하십시오 (상속이 있으므로 상속이 가능함)

그렇지 않으면보기를 추가하는 방법으로 인스턴스를 중지시킬 수있는 시스템 문제가 발생할 수 있습니다 .

관련 문제