Вы не найдете никакого готового инструмента для этого, но это не так сложно, как только вы закончите запись.После этого вам нужно будет смешать файл с фоновой музыкой, что можно сделать, просто добавив необработанные сэмплы вместе.
Чтобы эта часть работала, вам нужно будет либо декодировать фоновую музыку из чего угодносжатый формат, который вы используете для необработанного PCM, чтобы вы могли напрямую управлять сэмплами.Прошло много времени с тех пор, как я занимался разработкой для iOS, поэтому я не знаю, сможет ли iOS SDK сделать это напрямую или вам нужно будет связать libffmpeg с вашим кодом (или чем-то подобным).Но IIRC, iPhone поддерживает декодирование сжатого аудио в PCM, но не кодирует его (подробнее об этом в секунду).
В противном случае вы можете распространять сжатые файлы (в формате zip, а не в формате mp3 / aac / ogg / любой другой)) сырые файлы PCM с приложением и разархивируйте их для непосредственного получения данных сэмпла.
Как только вы получите окончательное сведение, вы можете передать его прямо через устройство воспроизведения в виде необработанного PCM.Если вам нужно сохранить или экспортировать его, вам нужно снова заглянуть в библиотеку декодирования / кодирования.
Если говорить об опыте по этому вопросу, вы, вероятно, захотите немного поработать над вокаломперед сведением с фоновой музыкой.Во-первых, вы хотите, чтобы фоновые дорожки были нормализованы до -3 дБ (или около того), чтобы голос пользователя был слышен поверх музыки.Во-вторых, вы должны применить фильтр высоких частот к вокалу, чтобы удалить все частоты ниже 60 Гц, так как микрофон iPhone может улавливать шум ветра или другие фоновые шумы.Наконец, вы, вероятно, захотите применить компрессию + лимитер к сэмплу вокала, чтобы во время тихих растяжек немного легче было слышать вокал.
К сожалению, вопрос, который вы задали, не так прост, как «просто используйте функцию».mixdownTracksTogether () ", но вы определенно можете добиться этого, соединяя вместе другие инструменты и функции.Надеюсь, что вы попадете на правильный путь!