У меня есть программа, которая воспроизводит два звука.Я хочу, чтобы пользователь знал, какой звук воспроизводится, поэтому у меня есть два больших изображения кнопок.У меня есть три разных вида, между которыми я бы хотел поменяться: один, где обе кнопки красные (ничего не воспроизводится), и два, где одна из двух кнопок зеленая (чтобы показать, кто играет).
Основная проблема, которую я получаю, заключается в том, что мой звук воспроизводится и заканчивается до того, как изображение поменялось!(Я использую [window setContentView: firstSound] до воспроизведения звуков)
Измененный вид в конце концов появляется, но только после завершения воспроизведения метода.
Я играюзвуковые файлы, использующие NSSound (оба они короткие wav-файлы, поэтому я подумал, что это уместно)
Кто-нибудь знает, что я сделал не так?Или если есть другой способ, которым я мог бы сделать это?Спасибо, куча !!
Редактировать: Я следовал совету, чтобы сделать так, чтобы только изображение изменилось (а не вид), но возникает та же проблема.Обновление происходит после завершения воспроизведения звуков.
Вот код:
-(void)readWavs{</p>
<pre><code>//[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];
}
Зеленый 'вкл'Кнопка должна отображаться до воспроизведения звука, но это происходит только после завершения метода.