Из его Документов :
Ограниченная сфера применения
Одна точка должна быть
уточнил, прежде чем продолжить: это
Класс предназначен для потокового аудио.
Под потоковым я не просто подразумеваю
аудио файл передается по HTTP ".
Вместо этого я имею в виду непрерывный HTTP
источник без конца, который продолжается
на неопределенный срок (как радиостанция,
ни одной песни).
Это, кажется, подразумевает, что получить длительность может быть сложно.
Вот как получить теги ID3v2:
Получить метаданные
Самый простой источник
метаданные поступают из заголовков HTTP.
Внутри
handleReadFromStream: типСобытии:
метод, используйте CFReadStreamCopyProperty
скопировать
kCFStreamPropertyHTTPResponseHeader
свойство из CFReadStreamRef,
тогда вы можете использовать
CFHTTPMessageCopyAllHeaderFields to
скопировать поля заголовка из
ответ. Для многих потокового аудио
серверы, имя потока является одним из
эти поля.
значительно сложнее источник
метаданные - это теги ID3. ID3v1 является
всегда в конце файла (так
бесполезно при потоковой передаче). ID3v2 это
расположен в начале, так что может быть больше
доступный.
Я никогда не читал теги ID3, но я
подозреваю, что если вы кешируете первый
несколько сотен килобайт файла
где-то, как он загружается, откройте этот кеш
с AudioFileOpenWithCallbacks и
затем прочитайте kAudioFilePropertyID3Tag
с AudioFileGetProperty вы можете быть
возможность прочитать данные ID3 (если это
существует). Как я уже сказал: я
на самом деле никогда не делал этого, поэтому я не
точно знаю, что это сработает.