Как автоматически воспроизводить звук при прокрутке на следующую страницу? - PullRequest
0 голосов
/ 20 августа 2009

Я использую Пример управления страницей от Apple. Я хочу иметь возможность прокручивать по горизонтали определенную страницу и автоматически воспроизводить звук при просмотре этой страницы? А потом звук остановится при просмотре другой страницы?

Так, например. На странице 1 у меня есть несколько текстов. Когда я перехожу на следующую страницу, которая находится на странице 2, я хочу, чтобы звук автоматически воспроизводился и останавливался, когда я перехожу на страницу 3.

Я планирую использовать операторы If (поскольку их не так много), чтобы определить, какая страница получит звук.

Мой вопрос прост. Как вы получаете звук воспроизведения автоматически при просмотре определенной страницы? Кстати, я планирую использовать System Sound.

Я знаю, как воспроизводить звук с помощью кнопки. Но как вы получаете это автоматически - начинайте при появлении определенной страницы и прекращайте при переходе на следующую.

Заранее спасибо!

Отредактировано:

Я вставил этот код в ViewDidLoad, но звук воспроизводился раньше, чем он достиг страницы, предназначенной:

// 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);
}
}

Ответы [ 2 ]

0 голосов
/ 03 марта 2010

-viewDidLoad вызывается один раз и только один раз *, когда загружено свойство view контроллера представления. В этот метод вы добавляете только то, что вызывается один раз и только один раз.

Воспроизведение звука явно не одноразовое событие. Поместите их в -viewDidAppear:.

*: Если контроллер представления не освобожден.

0 голосов
/ 20 августа 2009

Почему вы не можете отключить звук, когда на экране появляется желаемое представление viewControllers? Вы знаете, когда он появляется на экране из метода scrollViewDidScroll и метода loadPage (в примере «Управление страницей»). Посмотрев на методы там, вы сможете определить, когда вам нужно воспроизвести звук (потому что на экране появился конкретный вид) и воспроизвести его. Другой подход заключается в создании подкласса UIViewController с чем-то вроде UISoundViewController и воспроизведении звука в viewDidLoad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...