2009-08-20 4 views
0

나는 Apple의 Page Control example을 사용하고 있습니다. 특정 페이지로 가로로 스크롤하고 해당 페이지를 볼 때 사운드가 자동으로 재생되게하려면? 그런 다음 다른 페이지를 볼 때 소리가 멈 춥니 다.다음 페이지로 스크롤 할 때 사운드를 자동으로 재생하는 방법은 무엇입니까?

예를 들어, 1 페이지에는 텍스트가 있습니다. 2 페이지에있는 다음 페이지로 이동하면 소리가 자동으로 재생되고 3 페이지로 이동할 때 소리를 내고 싶습니다.

If 문을 사용할 계획입니다 (많은 페이지가 아니기 때문에). 어떤 페이지가 소리를 낼지 결정하십시오.

내 질문에 간단합니다. 특정 페이지를 볼 때 사운드를 자동으로 어떻게 재생합니까? 그런데 System Sound를 사용할 계획입니다.

버튼을 사용하여 소리를 재생하는 방법을 알고 있습니다. 그러나 어떻게 자동으로 가져 오나요? 특정 페이지가 나타나면 시작하고 다음 페이지로 이동할 때 멈 춥니 다.

미리 감사드립니다.

편집 됨 :

내가있는 viewDidLoad이 코드에 넣어하지만 사운드는 의도 페이지에 도달 빨리 전에에서 재생 : 당신이 소리가 원하는 viewControllers가 볼 때 떨어져 갈 수 있도록 못할 이유

// Set the label and background color when the view has finished loading. 
- (void)viewDidLoad { 
    pageNumberLabel.text = [NSString stringWithFormat:@"Page %d", pageNumber + 1]; 
    self.view.backgroundColor = [MyViewController pageControlColorWithIndex:pageNumber]; 
    if (pageNumber == 3) { 
     NSString *path = [[NSBundle mainBundle] pathForResource:@"crunch" ofType:@"wav"]; 
     SystemSoundID soundID; 
     AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID); 
     AudioServicesPlaySystemSound(soundID); 
} 
} 

답변

0

을 화면에 간다? scrollViewDidScroll 메서드와 loadPage 메서드 (페이지 컨트롤 예제에서)가 화면 상에 나타날 때를 알 수 있습니다. 거기에있는 메소드를 보면 사운드를 재생할 때 (특정보기가 화면에 표시되기 때문에) 언제 재생해야하는지 식별하고 재생할 수 있어야합니다. 또 다른 접근 방식은 UIViewController를 UISoundViewController와 같은 것으로 서브 클래 싱하여 viewDidLoad에서 사운드를 재생하도록하는 것입니다.

+0

나는 실제적인 코드를 넣고 편집했다. 내가 viewDidLoad하지만 소리가 의도 된 페이지에 도착하기 전에 이전에 소리를 재생하려고 했어요. 이유가 궁금합니다. – viper15

+0

해당보기에 대해 특정보기 컨트롤러를 사용하고 있습니까? 만약 당신이 그들 모두에 대해 동일한보기 컨트롤러를 사용하고 있다면 그 문제는 – Daniel

+0

입니다. 아니요, 동일한보기 컨트롤러를 사용하고 있습니다. 어떤 제안이 문제를 해결하는 방법? – viper15

0

은 뷰 컨트롤러의 view 속성이로드 될 때 한 번만 * 호출됩니다. 이 메서드에서는 한 번만 호출되는 내용 만 추가합니다.

소리를 명확하게 재생하는 것은 한번에 한 번만하는 이벤트가 아닙니다. 그것들을 -viewDidAppear:에 넣으십시오.

* :보기 컨트롤러가 할당 해제되지 않는 한.

관련 문제