iPhone - некоторые звуковые файлы не воспроизводятся - PullRequest
2 голосов
/ 19 февраля 2009

У меня есть список коротких файлов WAV. Два из этих файлов не воспроизводятся ни на симуляторе, ни на самом устройстве. Все файлы WAV длиной 1 секунда.

Так я воспроизводю файлы

SystemSoundID soundID;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];

NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
AudioServicesCreateSystemSoundID((CFURLRef)fileUrl, &soundID);
AudioServicesPlaySystemSound(soundID);

Может кто-нибудь сказать, пожалуйста, в чем проблема. Спасибо.

P.S. Когда я просматриваю файлы в Finder, файлы, которые не воспроизводятся, показывают проигрыватель по умолчанию как QuickTime, а другие показывают проигрыватель по умолчанию как iTunes, если это помогает.

Решение, предложенное Аланом, заключается в использовании файлов AIFF. Чтобы конвертировать WAV в AIFF, откройте звуковой файл в iTunes. В iTunes выберите «Настройки» -> «Основные» -> «Настройки импорта» -> «Импорт с использованием AIFF Encoder». Выберите звуковой файл и в расширенном меню выберите пункт «Создать версию AIFF»

Ответы [ 2 ]

5 голосов
/ 20 февраля 2009

iPhone поддерживает только следующие кодеки:

  • AMR (Adaptive Multi-Rate, речевой кодек)
  • iLBC (интернет-кодек с низким битрейтом, также речевой кодек)
  • IMA / ADPCM (также известный как IMA-4)
  • Линейный PCM
  • µLaw и aLaw

Ваши файлы WAV могут содержать аудио в другом формате, поэтому, хотя iPhone поддерживает файлы WAV, он может не поддерживать ваш конкретный файл WAV.

Лучшим вариантом, как правило, является использование программы командной строки afconvert для преобразования всего в файлы CAF (формат Apple по умолчанию). e.g.:

afconvert sound1.wav sound1.caf

Полный набор параметров преобразования можно просмотреть, выполнив:

afconvert -h

Это преобразование будет без потерь из большинства форматов. Формат файла CAF обычно самый быстрый и самый дешевый для использования на iPhone.

1 голос
/ 19 февраля 2009

см. Этот вопрос Попытка воспроизведения звука через iPhone Simulator

У меня был намного больший успех с файлами .aiff.

Было бы хорошо узнать, что именно AudioServicesCreateSystemSoundID проверяет, когда ему передается файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...