Воспроизведение нескольких аудиопотоков одновременно из одного аудиофайла - PullRequest
3 голосов
/ 21 апреля 2009

Я написал приложение, которое получает медиа-файлы с центрального сервера и воспроизводит эти файлы в соответствии со списком воспроизведения. Все работает хорошо. Клиент связался с нами и хочет использовать наше приложение для воспроизведения некоторых аудиофайлов в качестве презентаций в приложении в стиле киоска. Пока все хорошо, наше приложение может справиться с этим без проблем.

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

Мне пришла в голову идея кодирования одного аудиофайла с презентацией на нескольких языках и каждый язык на своем канале. Затем нам потребуется звуковая карта, которая может декодировать каждый канал и выводить его на другой разъем для наушников. Дело в том, что, хотя я считаю, что теория обоснована, я абсолютно не представляю, возможно ли это и что нужно для этого.

Есть идеи?!

В качестве дополнительного примечания: приложение использует Media Player в качестве базового компонента для управления воспроизведением аудио и видео. Я был бы признателен за любую помощь в отношении программного обеспечения, которое мы могли бы использовать для генерации многоканального аудиопотока, и оборудования (звуковая карта USB подойдет), которое мы могли бы использовать для декодирования потока. Спасибо!

Ответы [ 2 ]

2 голосов
/ 24 апреля 2009

Я думаю, что с аппаратным обеспечением Шэя у вас есть законченное решение: Кодируйте файл 7.1 с отдельной монофонической голосовой дорожкой на каждом канале. Используйте 8-канальное устройство вывода в режиме 7.1, с разными наушниками на каждом порту, и вы получите его. Или, если у вас есть только 6 языков, файл 5.1 будет работать. Многие ПК имеют встроенные выходы 5.1, вам понадобится всего 3 сплиттера для отключения левого и правого каналов от каждого разъема.

Вы можете выполнить кодирование с помощью Windows Media Encoder или другого профессионального аудио инструмента.

2 голосов
/ 22 апреля 2009

Вам нужно использовать несколько файлов, а не каналов, так будет проще.
Вместо использования Media Player используйте DirectShow (в .NET у вас есть DirectShow.NET ), в DirectShow у вас есть обозначение нескольких файлов на одном графике.

Вы сможете управлять тем, какое аудиоустройство воспроизводит какие файлы, и ваши команды Play, Pause, Stop будут выполняться для всех файлов без необходимости беспокоиться о синхронизации. Существует множество примеров того, как создать медиаплеер, как с DiectShow, расширить их для использования нескольких файлов очень просто.

Для HW взгляните на это (USB с 8 выходными каналами)

...