Я могу получить влево и вправо аудиопотоки живых разговоров в моей программе. И мне потребовалось отправить эти влево и вправо данные на удаленный сервер через один сокет .
После получения объединенных аудиопотоков на удаленном сервере необходимо разделить аудиопотоки обратно на левый и правый отдельные аудиопотоки.
Могу ли я использовать любой символ в качестве разделителя и отправить его на удаленный сервер?
Это конфликтует с аудио контентом?
Есть ли какой-нибудь стандартный способ выполнить это требование?
UPDATE
Мне удалось получить желаемый вывод в виде стереофайла, содержащего данные левого и правого каналов, но я не понимал, как это работает.
Вместо объединения данных левого и правого каналов я попытался просто отправить данные левой и правой стороны в один сокет без каких-либо изменений данных.
Я заметил, что аудиоданные левого и правого каналов не всегда отправляются на удаленный разъем альтернативным способом. Смотрите строки 2 и 3 ниже
1.sending left data of size 320...
2.sending right data of size 320...
3.sending right data of size 320...
4.sending left data of size 320...
5.sending right data of size 320...
На удаленном сервере Вместо однократного получения, я продублировал код для получения аудиоданных еще раз
size_left = recv(*sock, left_buffer, PCM_SIZE*2, 0);
size_right = recv(*sock, right_buffer, PCM_SIZE*2, 0);//newly added line
write = lame_encode_buffer(lame, (short int *)left_buffer, (short int *)right_buffer, n/2, mp3_buffer, 8000);
Но стереофонический mp3-файл успешно создан , и при разбиении его на монофонический файл слева и справа каждый файл имеет чистые данные своей собственной стороны.
Итак, я сомневаюсь, что как мы получаем чистые аудиоданные слева и справа, даже если мы не отправляем аудиопакеты влево и вправо поочередно ?