gpt4 book ai didi

objective-c - 在 Objective-C 中播放声音之前更改 View

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

我有一个播放两种声音的程序。我希望用户知道正在播放哪种声音,所以我有两个大按钮图像。我想在三种不同的 View 之间交换 - 一种是两个按钮都是红色的(没有播放),另一种是两个按钮之一是绿色的(显示哪个正在播放)。

我遇到的主要问题是我的声音在 View 交换之前播放并结束! (我在播放声音之前使用 [window setContentView:firstSound])

更改后的 View 最终会显示出来,但只有在播放 wav 的方法完成之后。

我正在使用 NSSound 播放声音文件(它们都是短 wav 文件,所以我认为它合适)

有谁知道我做错了什么?或者如果有另一种方法我可以做到这一点?谢谢大佬!!

编辑:我已按照建议进行操作,以便仅更改图像(而不是 View ),但会出现同样的问题。声音播放完毕后会更新。

这是代码:

-(void)readWavs{


//[window setContentView:firstWav];

[redButton setHidden:YES];

NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"fish" ofType:@"wav"];
NSSound *sound = [[NSSound alloc] initWithContentsOfFile:resourcePath byReference:YES];
[sound play];
sleep(3); //needed so that the sound will actually play
[sound stop];
[sound release];


//[redButton setHidden:NO];
//[window setContentView:testView];

sleep(2);

//[window setContentView:secondWav];

NSString *resourcePath2 = [[NSBundle mainBundle] pathForResource:@"fish" ofType:@"wav"];
NSSound *sound2 = [[NSSound alloc] initWithContentsOfFile:resourcePath2 byReference:YES];
[sound2 play];
sleep(3);
[sound2 stop];
[sound2 release];
}

绿色的“开”按钮应该在声音播放之前出现,但只有在方法完成后才会出现。

最佳答案

我不确定我的理解是否正确,但是当播放显示正在播放的声音(通过图像)的声音时,您试图切换到完全不同的 View 听起来是什么?如果是这样,您应该只使用 imageView.hidden = YES 和 imageView.hidden = NO 根据声音显示正确的图像。更好的是,您可以使用一个 ImageView 并根据声音更改 ImageView 中显示的图像。

关于objective-c - 在 Objective-C 中播放声音之前更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6406497/

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