gpt4 book ai didi

objective-c - 核心动画+核心音频+ sleep 未按预期顺序进行

转载 作者:行者123 更新时间:2023-12-03 00:58:58 27 4
gpt4 key购买 nike

以下是我正在使用的一些代码。

我想要/期望的是:

  • 图像淡入;声音播放;延迟;图像淡出。

  • 怎么了
  • 延迟,声音播放,图像淡入,然后在
  • 之后淡出

    任何帮助,不胜感激。

    ViewController.m
    [self fadein];
    NSString *tempFN;
    SystemSoundID soundID;
    tempFN = [[NSString alloc] initWithFormat:@"%@.caf",
    [myGlobals.gTitleArray objectAtIndex:myGlobals.gQuoteCountForLoop]];
    NSString *soundFilePath = [NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], tempFN];
    NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
    AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
    sizeof (sessionCategory),
    &sessionCategory);
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundFileURL, &soundID);
    AudioServicesPlaySystemSound(soundID);

    // Now fade-out the image after a few seconds delay
    sleep(3);
    [self fadeout];

    -(IBAction)fadein
    {
    [UIImageView beginAnimations:NULL context:nil];
    [UIImageView setAnimationDuration:2];
    [faceImage setAlpha:0.3];
    [UIImageView commitAnimations];
    }

    -(IBAction)fadeout
    {
    [UIImageView beginAnimations:NULL context:nil];
    [UIImageView setAnimationDuration:1];
    [faceImage setAlpha:0];
    [UIImageView commitAnimations];
    }

    最佳答案

    我相信问题是当您使用“sleep(5)”时。使用sleep()函数会阻塞主线程,因此在该时间段内无法执行任何操作。除了某些命令行实用程序外,在Objective-C中很少使用sleep()函数。
    我建议您使用NSTimer而不是sleep()函数。

    希望这可以帮助。

    //编辑
    另外,如果确实必须使用sleep(),则应改为使用NSThread类的sleepForTimeInterval:函数,并使其余代码在辅助线程上运行。再一次,我真的不认为您应该使用sleep()函数或任何相关函数。

    关于objective-c - 核心动画+核心音频+ sleep 未按预期顺序进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793177/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com