Есть идея разработать чат с поддержкой аудио сообщений, но для этого мне нужна небольшая помощь.
На данный момент я реализовал запись аудио и отображение звуковой волны во время записи/чтения.
Глядя на приложения Telegram, VK меня интересует пара вопросов:
1) При загрузке чата, все аудиосообщения мгновенно представлены со звуковой волной. Как происходит обработка этих типов сообщений?
Я могу получить NSData по url и затем получить buffer. После этого, с помощью Accelerate, я могу получить данные и отрисовать эту звуковую волну. Но для огромного количества сообщений это займёт огромное количество времени. Есть ли какие-то альтернативные решения?
2) должен ли я использовать для воспроизведения удаленных аудио файлов AVAudioPlayer с предварительным получением NSData и воспроизведением его, либо лучше использовать AVPlayer? Но как в этом плане получить buffer для отрисовки звуковой волны
В телеграме "звуковая волна" - очень дискретна. Вполне легко можно при передаче с клиента на сервер аудио дополнительно передать массив для отрисовки "звуковой волны" - буквально сотни байт хватит. Ну и соответственно в обратную сторону - сначала получаем с сервера эту сотню байт, рисуем дичайше дискретный график, а уже потом грузим длинный долгий аудиофайл.
1) Открою секрет, звуковая волна не парсится из звукового файла, а хранится в виде отдельного поля (по крайней мере в telegram), которое присылает само приложение при загрузке файла, т.е. если не пришлет, то и звуковой волны не будет.
2) Если речь идет про звуковые сообщения (короткие, ОЧЕНЬ маленькие файлы), то мне кажется что легче их сразу скачивать и воспроизводить локальный файл.