0

viewDidLoadメソッドでサウンドファイルを再生しています。サウンドファイルはドキュメントディレクトリに保存されます。ビューが最初にロードされたときに正常に再生されます。しかし、このビューをポップして戻ってくると、再生されません。

これが私のコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *localFilePathSound =[[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"sound.caf"]]];

    if ([[NSFileManager defaultManager] fileExistsAtPath:localFilePathSound]) {
        //NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"scaryVoice" ofType:@"wav"];
        CFURLRef clapURL = (CFURLRef ) [NSURL fileURLWithPath:localFilePathSound];
        AudioServicesCreateSystemSoundID (clapURL, &clappingFileId);
        AudioServicesPlaySystemSound(clappingFileId);
    }
    // Do any additional setup after loading the view from its nib.
    else{
        NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"scaryVoice" ofType:@"wav"];
        CFURLRef clapURL = (CFURLRef ) [NSURL fileURLWithPath:clapPath];
        AudioServicesCreateSystemSoundID (clapURL, &clappingFileId);
        AudioServicesPlaySystemSound(clappingFileId);
    }
}
4

2 に答える 2

0

メソッドviewDidLoadは、ビューが最初に表示されたときにのみ呼び出されます。ビューが表示されるたびに何かを行うには、コードをviewWillAppear:.

必ずメソッドから呼び出し[super viewWillAppear:animated]てください。

于 2012-11-14T04:13:40.823 に答える
0

ビューから戻った後にこのメソッドを再生したい場合。- (void)viewWillAppear:(BOOL)animated 上記のコードをor - (void)viewDidAppear:(BOOL)animatedメソッドに書くだけです。

- (void)viewWillAppear:(BOOL)animated
{
   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *localFilePathSound =[[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"sound.caf"]]];

    if ([[NSFileManager defaultManager] fileExistsAtPath:localFilePathSound])
    {
        //NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"scaryVoice" ofType:@"wav"];
        CFURLRef clapURL = (CFURLRef ) [NSURL fileURLWithPath:localFilePathSound];
        AudioServicesCreateSystemSoundID (clapURL, &clappingFileId);
        AudioServicesPlaySystemSound(clappingFileId);
    }
    // Do any additional setup after loading the view from its nib.
    else
    {
        NSString *clapPath = [[NSBundle mainBundle] pathForResource:@"scaryVoice" ofType:@"wav"];
        CFURLRef clapURL = (CFURLRef ) [NSURL fileURLWithPath:clapPath];
        AudioServicesCreateSystemSoundID (clapURL, &clappingFileId);
        AudioServicesPlaySystemSound(clappingFileId);
    }
}
于 2012-11-14T04:10:52.480 に答える