Я пытаюсь создать приложение, в котором должен воспроизводиться короткий образец звука, пока человек, использующий приложение, проводит пальцем по экрану. Когда палец (пальцы) поднят с экрана - звук прекратится.
Это текущая функция, которая запускает звук (я пробовал разные методы):
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
NSLog(@"Ja, den börjar...");
return YES;
}
-(void)ccTouchMoved:(NSSet *)touch withEvent:(UIEvent *)event{
soundFile = [[CDAudioManager sharedManager] audioSourceForChannel:kASC_Right];
[soundFile load:@"sound.wav"];
soundFile.backgroundMusic = NO;
soundSourceForFile:@"sound.wav"]retain];
}
Это функция, которая останавливает звук:
-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event{
[soundFile stop];
}
Я впервые начал использовать ccTouchBegan (просто для того, чтобы какой-то звук работал), который плавно зацикливал звук. В этот момент ccTouchEnded работал вместе с событием «Touch Up Inside».
Суть, как я уже сказал, заключается в том, что звук должен воспроизводиться, когда пользователь проводит пальцем по экрану. Но когда я попытался связать функцию playSound с "ccTouchMoved", звук многократно перекручивается вокруг самого себя, а не по одному, что делает его адским в использовании. Функция stopSound не работает после перехода на ccTouchMoved.
Я пытался использовать NSTimer, чтобы создать какой-то способ обработки циклов, но безуспешно.
Я начал этот проект с обычного iOS SDK и обнаружил свои ограничения, когда узнал, что не смог справиться с манипулированием высотой и усилением без Cocos2d.
Я получил все, что работает в обычном SDK, заключив его в оператор if:
if(![mySound isPlaying]{
[mySound play];
}
Это, как я уже сказал, прекрасно работало в обычном SDK, но не сейчас, когда я использую Cocos2d.
У вас, ребята, есть хорошие идеи? Я начинающий, когда дело доходит до Objective-C, разработки для iPhone и XCode - так откровенно со мной.