Я пишу приложение для iOS, которое взаимодействует с музыкальным сервисом Rhapsody SDK. Я застрял на том этапе, когда мне нужно объединить части RAD и EA музыкального файла. Согласно их документам:
После того, как информация о воспроизведении дорожки была возвращена, вы можете приступить к извлечению аудиоданных Rhapsody. Сначала загрузите в клиент свойство URL-адреса мультимедиа, возвращенное методом getTrackPlaybackInfos. Для большинства форматов Rhapsody, разрешенных для потоковой передачи, требуется метод безопасности, используемый Rhapsody, который называется RAD/EA. Модель безопасности RAD/EA допускает немедленную загрузку через HTTP большей части дорожки (известной как RAD-часть аудио). Затем клиент загружает небольшую зашифрованную часть файла (известную как часть файла EA) каждые 30 секунд, чтобы составить весь музыкальный файл.
Если URL-адрес мультимедиа содержит RAD, вызовите метод getEA, чтобы получить необходимое аудио (EA). Используйте идентификатор сеанса, версию RAD (3, если иное не указано вашим представителем Rhapsody Direct), формат и битрейт, возвращаемые при вызове функции getTrackPlaybackInfos. Вы должны вызвать метод getEA несколько раз, чтобы воспроизвести всю звуковую дорожку. Параметр position содержит смещение в блоке EA, с которого начинается извлечение аудиоданных, а параметр count содержит фактическое количество возвращаемых байтов. Например, при первом вызове getEA вы должны установить для параметра position значение 0, а для параметра count — значение 4096. Это вернет 4096 байтов аудиоданных, начиная с начала дорожки. При втором вызове для получения EA вы должны установить параметр position равным 4096, а параметр count — 4096. При третьем вызове параметр position будет равен 8192, а параметр count — 4096. Продолжайте вызывать метод getEA, пока не будет получена вся дорожка. играл.
Я могу найти файл RAD достаточно легко. Но что мне не ясно, так это то, как мне повторно объединить файлы RAD и EA в потоковый / воспроизводимый медиафайл? Я думаю, что это первый раз, когда Google подвел меня. Я даже не могу найти подсказку о том, как действовать дальше.