私は娘が遊ぶための小さなアプリに取り組んでいますが、サウンドの開始と停止に少し問題があります。あるページから次のページにスワイプすると異なるサウンドが再生されるようにコーディングしましたが、それらはオーバーラップしています。ページを前後にスワイプしながら、前のサウンドを停止して次のサウンドを開始する方法を見つけようとしています。これが私が持っているものです:
@implementation ViewController
@synthesize imageview;
int imageIndex = 0;
- (IBAction)handleSwipe:(UIGestureRecognizer *)sender {
//NSLog(@"swiped");
UISwipeGestureRecognizerDirection direction =
[(UISwipeGestureRecognizer *) sender direction];
switch (direction) {
case UISwipeGestureRecognizerDirectionLeft:
imageIndex++;
break;
case UISwipeGestureRecognizerDirectionRight:
imageIndex--;
break;
default:
break;
}
[self doit];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
imageIndex = -1;
imageview.image = [UIImage imageNamed:@"icon.png"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void) doit {
NSArray *images= [[NSArray alloc] initWithObjects:
@"bee.png",
@"cow.png",
@"cat.png",
@"dog.png",
@"elephant.png",
@"goat.png",
@"horse.png",
@"lion.png",
@"monkey.png",
@"pig.png",
@"rooster.png",
@"sheep.png",
@"snake.png",
@"squirrel.png",
@"tiger.png",
@"wolf.png", nil];
NSArray *audio= [[NSArray alloc] initWithObjects:
@"Bee",
@"Cow",
@"Cat",
@"Dog",
@"Elephant",
@"Goat",
@"Horse",
@"Lion",
@"Monkey",
@"Pig",
@"Rooster",
@"Sheep",
@"Snake",
@"Squirrel",
@"Tiger",
@"Wolf", nil];
imageIndex = (imageIndex < 0) ? ([images count] -1):
imageIndex % [images count];
imageview.image = [UIImage imageNamed:[images objectAtIndex:imageIndex]];
//audio here
NSString *str = [audio objectAtIndex:imageIndex];
CFStringRef string = (__bridge CFStringRef) str;
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundeFileURLRef;
soundeFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) string, CFSTR ("mp3"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundeFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);