2009-05-22 5 views
3

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

ответ

8

Apple, есть статья на эту тему, см: this link

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 в то время.

+0

Не уверен в iOS 2.2 и ниже, но вполне возможно воспроизвести несколько mp3-файлов за раз, используя множество экземпляров AVAudioPlayer. – Jonny

+0

освобождение игрока сразу после попытки играть может вызвать проблемы. – Rizon

6

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

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

    CAF подставки для Core Audio Format (я думаю ...)

  2. Посмотрите на SoundEffect.h и .m в образце кода компании Apple. Я считаю, что у Metronome и BubbleLevel есть это.

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

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

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

+0

Только что реализовано, отлично работает! Просто нужно использовать Audacity для преобразования wav -> wav, чтобы заставить afconvert работать, никаких других проблем. – JOM

 Смежные вопросы

  • Нет связанных вопросов^_^