Какой самый простой способ воспроизведения аудиоклипа в приложении для iPhone? - PullRequest
3 голосов
/ 22 мая 2009

Я хочу иметь возможность воспроизводить аудиоклип в приложении для iPhone OS. Я видел информацию как на NSSound , так и на AVFoundation в качестве средства для воспроизведения звуковых клипов, воспроизводимых на устройстве iPhone OS, но я все еще не совсем ясен по этому вопросу и мог использовать некоторую помощь. Не нужно подробно описывать это для меня в реальном коде, но если кто-то может дать мне подсказку относительно общего направления (то есть, на каких классах я должен сосредоточиться), в котором я должен начать двигаться, я заполню в заготовках сам. Итак, какой самый простой способ воспроизвести аудиоклип в приложении для iPhone?

Ответы [ 2 ]

8 голосов
/ 22 мая 2009

У Apple есть статья на эту тему, см .: эта ссылка

AVAudioPlayer - это самый простой способ воспроизводить звуки любой длины, зацикливаясь или нет, однако для этого требуется iPhone OS 2.2 или выше. Простой пример:

NSString *soundFilePath =
                [[NSBundle mainBundle] pathForResource: @"sound"
                                                ofType: @"wav"];

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];

AVAudioPlayer *newPlayer =
                [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
                                                       error: nil];
[fileURL release];

[newPlayer play];

[newPlayer release];

Он будет воспроизводить практически любой формат файла (aiff, wav, mp3, aac). Имейте в виду, что одновременно можно воспроизводить только один файл mp3 / aac.

6 голосов
/ 22 мая 2009

Вот самый простой способ, которым я знаю:

  1. Конвертируйте ваш звуковой файл в caf (используйте инструмент командной строки afconvert) и добавьте в свой проект.

    caf означает Core Audio Format (я думаю ...)

  2. Найдите SoundEffect.h и .m в примере кода Apple. Я полагаю, что и у Метронома, и у BubbleLevel это есть.

  3. Скопируйте в свой проект
  4. Введите код, указанный ниже:

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]];
    [SimpleSound play];
    [SimpleSound release];
    

Изучите SoundEffect.m, чтобы получить представление о простой обработке звука.

...