2013-03-19 5 views
1

Я пытаюсь отправить музыку через Bluetooth с одного устройства iOS на другое. Я использовал this для создания пакетов, например, в учебнике SNAP Ray Wenderlich, но у меня возникли проблемы с восстановлением пакетной информации на принимающем телефоне. Я пробовал использовать https://github.com/abbood/iphoneAudioSyncer, но я считаю, что это слишком сложно для моих нужд (так как мне не нужна синхронизированная игра). Каков самый простой подход к буферам, который учитывает такие вещи, как потерянные/недействительные пакеты? Я прочитал много материалов CoreAudio, но он очень плотный, поэтому я был бы признателен за помощь от тех, кто занимался этой проблемой.iPhone потоковое воспроизведение музыки

ответ

4

, когда вы говорите о лосе/не в порядке пакетов. Вы говорите о теме Packet Loss Concealment .. Это очень плотная тема (я имею в виду, если вы считаете, что звук основного звука плотный .. подождите, пока вы не погрузитесь в PLC).

Вкратце, есть много способов борьбы с потерей пакетов .. но самый простой способ (который я вам советую) заключается в том, чтобы заменить потерянные пакеты тишиной (то же самое происходит с пакетами не в порядке), если пакет вышел из строя .. просто отбросьте его).

, что, как говорится, вы имеете дело со звуком, который передается вам (то есть отправляется через сеть bluetooth/wifi) .. это означает, что почти в 100% случаев это сжатый звук, который вы получаете (т.е. переменная Битрейт аудио VBR). Если вы просто попытаетесь заменить потерянные VBR-пакеты тишиной, вы столкнетесь с проблемой this. Вам придется либо вставлять пакеты молчания в тот же формат сжатия, что и аудио VBR, с которым вы имеете дело, или вам придется преобразовать сжатый звук VBR в несжатый звук (Lossless PCM), а затем вставить нули вместо недостающие пакеты.

+0

Вы заметите, что, хотя вы использовали два примера приложений, которые я создал, вам все равно будет очень сложно. К сожалению, это реальность основных приложений для аудио/реального времени в целом. Нет простого способа обойти его или подключить и играть в решения, которые вы можете просто найти в Интернете (и если есть, то просто понять их - очень сложная задача на своем собственном .. как вы узнали). – abbood

+1

Итак, это совет, который я даю всем, кто пытается попасть в основное приложение для аудио/реального времени (погода для коммерческих или академических целей, и вы не первый): вам, возможно, придется переоценить сферу действия проекта, потому что такие проекты могут показаться легкими при первом взгляде, но как только вы копаетесь, вы обнаружите, что отверстие кролика простирается гораздо глубже, чем вы ожидали. С другой стороны, решение этой проблемы начинается с начала жизненного цикла вашего программного обеспечения: на этапе планирования и сбора требований. – abbood

+0

Какие альтернативы вы бы порекомендовали? Премия Spotify является очевидным первым выбором, но как насчет загрузки/загрузки песен на сервер. В принципе, как мы можем позволить людям делать музыкальные предложения и воспроизводить песни на главном телефоне? – tancik

Смежные вопросы