2014-12-11 3 views
0

В моем «initWithSize» в моем файле реализации главного меню я вставлял код для воспроизведения музыки. У меня появляется экран загрузки, а затем загружается экран главного меню. Когда экран загрузки появляется, он начинает воспроизводить музыку, но экран загрузки никогда не исчезает, и я хочу, чтобы музыка зацикливалась, и она не зацикливается. Я не знаю, что здесь происходит.музыка не зацикливается с AVAudioPlayer

NSError *error; 
    NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"POL-parallel-fields-short" withExtension:@"mp3"]; 
    AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error]; 
    [player setVolume:0.1]; 
    [player prepareToPlay]; 

    SKAction* playAction = [SKAction runBlock:^{ 
     [player play]; 
     }]; 
    SKAction *playMusic = [SKAction repeatActionForever:playAction]; 

[self runAction:playMusic]; 
+0

Я плохо разбираюсь. [self runAction: [SKAction repeatActionForever: [последовательность SKAction: @ [playAction, [SKAction waitForDuration: musicTime]]]]; попробуйте это, возможно, это сработает. –

ответ

0

Я не думаю, что ваш метод «зацикливание» правильно ...

Вам не нужно, чтобы создать действие для того,
Просто попробуйте изменить код this-

NSError *error; 
NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"POL-parallel-fields-short" withExtension:@"mp3"]; 
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error]; 
[player setVolume:0.1]; 
[player prepareToPlay]; 
player.numberOfLoops = -1; 
[player play]; 

numberOfLoops это свойство, которое устанавливается количество циклов звук будет играть.
Из документации яблока - 0 по умолчанию, который будет воспроизводить звук один раз.
Любое положительное число будет устанавливать количество раз, когда оно будет воспроизводиться.
Любое отрицательное число заставляет музыку зацикливаться бесконечно, пока не будет вызвано stop.

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

Но вышеизложенное решит вашу проблему с музыкой.

+0

Спасибо! Для экрана загрузки нет кода, который относится к нему, потому что Xcode делает это автоматически. –

+0

Ох ... Я думал, что вы создаете пользовательский экран загрузки ... Вы имеете в виду, что он застрял в заставке в начале приложения? Это происходит как на тренажере, так и на устройстве? Я читал где-то о ком-то, кто жаловался на ту же проблему, и позже он узнал, что его приложение застряло в бесконечном цикле, прежде чем показывать первое представление. Не могли бы вы проверить свой код, чтобы увидеть, что здесь тоже не так? – AMI289

+0

Я просто попытался сделать это не петлей, и у него все еще была такая же проблема. Поэтому, когда я запускаю приложение, появляется изображение запуска, и музыка начинает играть. Тогда ничего больше не происходит, он остается на изображении запуска, и если я помещаю музыку в цикл, она продолжает идти, если я не ставил цикл, он заканчивает игру, и до сих пор ничего не происходит. –