Technology sharing

Ludere AAC per Audio Services of Audio Toolbox

2024-07-12

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

Ludere AAC per Audio Services of Audio Toolbox

Ludere AAC per Audio Services of Audio Toolbox

Maxime dividitur in gradus III:

  1. usus AudioServicesCreateSystemSoundID Crea ratio sonorum.
  2. usus AudioServicesAddSystemSoundCompletion Pone callback.
  3. usus AudioServicesPlaySystemSound Incipit ludens.

de " AudioServicesPlaySystemSound officium:

Hoc munus brevi sono (duratio 30s vel minus). Cum sonus pluribus secundis ludere possit, hoc munus asynchronously peragitur.Invenire cum sonus ludens finivit, vocaAudioServicesAddSystemSoundCompletion munus mittere callback munus.

In quibusdam iOS machinis potes AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) tremula invocare. In aliis iOS machinis, hoc munus appellans cum hoc constanti effectum non habet.

Fines sunt imaginum audio quas hoc munus ludere potest:

  • Non diutius quam XXX seconds in tempore
  • In linearibus PCM vel IMA4 (IMA/ADPCM) format
  • Packaged in a .caf, .aif, or .wav file

Re quidem vera, fasciculi AAC normaliter ludere possunt.

  • Sonus ludit in systemate audio volumine currenti, nulloque volumine programmatis adhibito.
  • Statim sonus ludit.
  • Looping and mono positioning are not supported.
  • Playback simultaneum fieri non potest, una tantum soni tempore lusit.
  • Sonus localiter in fabrica loquentium luditur et non utitur audio rouge.

Core code:

- (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

Project inscriptio: https://github.com/UestcXiye/AudioToolboxSystemSound.