Я использую AudioServicesPlaySystemSound внутри функции, могу ли я передать переменную SystemSoundID обратно вызывающей программе - PullRequest
0 голосов
/ 09 марта 2011

Я использую Xcode 4.2 Я создал функцию для последовательного воспроизведения массива аудиоклипов:

// ------------------------------- // ФУНКЦИЯ ЧИТАТЬ КВАДРАТИЧЕСКИЕ СООБЩЕНИЯ // ------------------------------- void SayQuad (int pageNumber, NSMutableArray quadSounds []) { NSString * fileName = [quadSounds objectAtIndex: pageNumber]; NSString * path = [[NSBundle mainBundle] pathForResource: fileName ofType: @ "wav"]; SystemSoundID sayIt; NSURL * filePath = [NSURL fileURLWithPath: путь isDirectory: НЕТ]; AudioServicesCreateSystemSoundID ((CFURLRef) filePath, & sayIt); AudioServicesPlaySystemSound (sayIt);
} Теперь, основываясь на действиях пользователя, я хочу отменить звуковой клип до его окончания. Это можно сделать с помощью: AudioServicesDisposeSystemSoundID (sayIt); Однако переменная "sayIt" должна быть возвращена вызывающей программе. Я новичок в этом и просто не знаю, как это сделать. Я попытался установить переменные-указатели, но не могу даже заставить их скомпилировать.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 12 мая 2011

Прежде всего, пожалуйста, позаботьтесь о правильном форматировании кода, чтобы мы могли легко его прочитать.Это должно выглядеть примерно так:

void SayQuad(int pageNumber, NSMutableArray quadSounds[]) {

   NSString *fileName = [quadSounds objectAtIndex:pageNumber]; 
   NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"wav"];
   SystemSoundID sayIt; 
   NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];     
   AudioServicesCreateSystemSoundID((CFURLRef)filePath, &sayIt);
   AudioServicesPlaySystemSound(sayIt);
}

Далее, пожалуйста, внимательно прочитайте, что Apple предоставляет: http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_AudioVideo_iPhone/_index.html Вы используете SystemSoundServices.Для управления воспроизведением вам нужно использовать AVAudioPlayer или другой, например OpenAL.Это все написано в документах Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...