AVAudioPlayer, кажется, не обрабатывает некоторые аудиофайлы, которые могут быть обработаны при использовании AudioStreamer (https://github.com/mattgallagher/AudioStreamer) даже при воспроизведении как локальный файл.
Мои вопросы:
1) Какой типаудиофайлы генерируют код ошибки «pty?».ПРИМЕЧАНИЕ. Аудиофайл прекрасно воспроизводится в QuickTime-плеере.
2) Следующий код генерирует ту же ошибку при использовании этого аудиофайла:
UInt32 size;
OSStatus err = AudioFileGetPropertyInfo([self audioFileID], kAudioFilePropertyChannelLayout, &size, NULL);
Но при использовании потокового API на том же аудиофайле этобудет работать (хорошо, разные свойства извлекаются, но тогда возникает вопрос, почему нельзя задать макет канала?):
err = AudioFileStreamGetPropertyInfo(inAudioFileStream, kAudioFileStreamProperty_FormatList, &formatListSize, &outWriteable);
Я знаю, что для потоковой передачи аудио необходимо использовать потоковый API, потому что толькочасть файла доступна в то время.Но когда весь файл находится в файловой системе, можно использовать файл audio api (?)
3) Рекомендуется ли использовать stream api, даже если файл является локальным?Хорошие идеи, как это реализовать, приветствуются.
Что меня удивляет, так это то, что AudioFile * api не работает, если AudioFileStream * работает.