2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Jaettu pääasiassa 3 vaiheeseen:
AudioServicesCreateSystemSoundID
Luo järjestelmäääniä.AudioServicesAddSystemSoundCompletion
Aseta takaisinsoitto.AudioServicesPlaySystemSound
Aloita pelaaminen.noin AudioServicesPlaySystemSound
toiminto:
Tämä toiminto toistaa lyhyen äänen (kesto 30 sekuntia tai vähemmän). Koska ääni saattaa kuulua useita sekunteja, tämä toiminto suoritetaan asynkronisesti.Jos haluat tietää, milloin ääni on päättynyt, soitaAudioServicesAddSystemSoundCompletion
toiminto rekisteröidä takaisinsoittotoiminto.
Joillakin iOS-laitteilla voit AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
herättää tärinää. Muissa iOS-laitteissa tämän funktion kutsumisella tällä vakiolla ei ole vaikutusta.
Seuraavat ovat rajoituksia äänitiedostoille, joita tämä toiminto voi toistaa:
.caf
, .aif
, tai .wav
tiedostoMutta itse asiassa AAC-tiedostoja voidaan toistaa myös normaalisti. Lisäksi tällä toiminnolla on monia rajoituksia:
Ydinkoodi:
- (void)btnClick:(UIButton *)sender
{
self.mButton.hidden = YES;
NSURL *audioUrl = [[NSBundle mainBundle] URLForResource:@"music" withExtension:@"aac"];
SystemSoundID soundID;
// create a system sound object
AudioServicesCreateSystemSoundID((__bridge CFURLRef)audioUrl, &soundID);
// register a callback function that is invoked when a specified system sound finishes playing
AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, &playCallback, (__bridge void *_Nullable)(self));
// play a system sound object
AudioServicesPlaySystemSound(soundID);
}
void playCallback(SystemSoundID ssID, void *clientData)
{
ViewController *vc = (__bridge ViewController *)clientData;
vc->_mButton.hidden = NO;
}
Projektin osoite: https://github.com/UestcXiye/AudioToolboxSystemSound.