Teknologian jakaminen

Pelaa AAC:tä Audio Toolboxin äänipalveluilla

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Pelaa AAC:tä Audio Toolboxin äänipalveluilla

Pelaa AAC:tä Audio Toolboxin äänipalveluilla

Jaettu pääasiassa 3 vaiheeseen:

  1. käyttää AudioServicesCreateSystemSoundID Luo järjestelmäääniä.
  2. käyttää AudioServicesAddSystemSoundCompletion Aseta takaisinsoitto.
  3. käyttää 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:

  • Kesto enintään 30 sekuntia
  • Lineaarisessa PCM- tai IMA4-muodossa (IMA/ADPCM).
  • Pakattu a .caf, .aif, tai .wav tiedosto

Mutta itse asiassa AAC-tiedostoja voidaan toistaa myös normaalisti. Lisäksi tällä toiminnolla on monia rajoituksia:

  • Ääni toistetaan nykyisellä järjestelmän äänenvoimakkuudella ilman ohjelmoitua äänenvoimakkuuden säätöä.
  • Ääni kuuluu heti.
  • Looppausta ja stereoasemointia ei tueta.
  • Samanaikainen toisto ei ole mahdollista, vain yksi ääni voidaan toistaa kerrallaan.
  • Ääni toistetaan paikallisesti laitteen kaiuttimista, eikä siinä käytetä äänen reititystä.

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Projektin osoite: https://github.com/UestcXiye/AudioToolboxSystemSound.