Как сделать звуковой цикл, пока кнопка удерживается в Xcode? - PullRequest
1 голос
/ 18 сентября 2011

Итак, как сделать так, чтобы звуковой файл воспроизводился и зацикливался только при удержании определенной кнопки в (iOS)? Мне также нужно, чтобы он остановился, когда кнопку отпустили? Я попытался выполнить поиск в Google и нашел только форумы с людьми, которые спрашивают, но не имеют реальных ответов о том, как это сделать.

1 Ответ

2 голосов
/ 18 сентября 2011

используйте кнопки управления событиями touchdown, touchupinside и touchupoutside:

UIButton *theButton = [[UIButton alloc]initWithFrame:CGRectMake(40.0, 40.0, 200.0, 30.0)];
[theButton setTitle:@"button" forState:UIControlStateNormal];
[theButton setBackgroundColor:[UIColor redColor]];
[theButton addTarget:self action:@selector(startMusic) forControlEvents:UIControlEventTouchDown];
[theButton addTarget:self action:@selector(stopMusic) forControlEvents:UIControlEventTouchUpInside];
[theButton addTarget:self action:@selector(stopMusic) forControlEvents:UIControlEventTouchUpOutside];

редактировать: понял, что ваш вопрос, возможно, был больше о воспроизведении звуковых файлов?!

есть разные фреймворки, вы можете использовать AVAudioPlayer:

структура импорта и определение игрока

#import <AVFoundation/AVFoundation.h>
AVAudioPlayer *newPlayer;

создайте свои ibactions для кнопок в главном файле:

-(IBAction)startMusic{
    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: @"mySoundFile"
                                                          ofType: @"wav"];
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
    newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil];
    newPlayer.numberOfLoops = -1; // Loop indefinately
    [newPlayer play];
}

и

-(IBAction)stopMusic{
    if(newPlayer isPlaying){
        [newPlayer stop];
    }
    [newPlayer release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...