0

画像付きのアプリがあり、ユーザーが画像を押すとサウンドクリップが再生されます。サウンド クリップがない最後の画像 (25) に到達したら、アプリが自動的に閉じられることを押すと、どうすればこれを防ぐことができますか。

たとえば、ユーザーが 01.Png をクリックしたら C01.mp3 を再生する必要があります (すべての画像が画像配列にも保持されていることに注意してください) 基本的に私は 25.png を持っています。クリップしますが、その画像をクリックすると、アプリケーションが自動的に閉じます。これを整理するには助けが必要です。

//

#import "SoundsGenerator.h"


@implementation SoundsGenerator

- (id) init
{
    CFBundleRef mainBundle;
    mainBundle = CFBundleGetMainBundle ();

    soundObjects=[[NSMutableArray alloc] init];

    NSMutableArray *soundNames = [[NSMutableArray alloc] initWithObjects:@"c1",
                                @"c2", 
                                @"c3", 
                                @"c4", 
                                @"c5", 
                                @"c6", 
                                @"c7", 
                                @"c8", 
                                @"c9", 
                                @"c10", 
                                @"c11", 
                                @"c12", 
                                @"c13", 
                                @"c14", 
                                @"c15", 
                                @"c16", 
                                @"c17", 
                                @"c18", 
                                @"c19", 
                                @"c20", 
                                @"c21", 
                                @"c22", 
                                @"c23", 
                                @"c24",nil];    

    for(NSString *soundName in soundNames)
    {
        CFBundleRef mainBundle = CFBundleGetMainBundle();
        CFURLRef soundFileURLRef;
        soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (__bridge CFStringRef)soundName, CFSTR ("mp3"), NULL);

        SystemSoundID soundFileObject;
        // Create a system sound object representing the sound file
        AudioServicesCreateSystemSoundID (soundFileURLRef, &soundFileObject);

        SoundObject *objSound=[[SoundObject alloc] init];
        objSound.soundFileObject=soundFileObject;
        objSound.soundFileURLRef=soundFileURLRef;
        [soundObjects addObject:objSound];
    }

    return self;
}

// Respond to a tap on the System Sound button
- (void) playSound:(int)index 
{
    SoundObject *soundObject=[soundObjects objectAtIndex:index];
    AudioServicesPlaySystemSound ((SystemSoundID)soundObject.soundFileObject);
}


@end
4

1 に答える 1

0

交換

for(NSString *soundName in soundNames)
{

for(int i = 0 ; i < soundNames.count-1 ; i++)
{
   NSString *soundName = [soundNames objectAtIndex:i];
   //rest of the code same

これにより、24 個のインデックス配列の 23 個のインデックスまでループが実行されます。

于 2013-01-12T05:26:20.343 に答える