views:

1016

answers:

2

Hi,

I have written an application that receives media files from a central server and plays those files according to a playlist. All works well. A client has contacted us and wants to use our application to play some audio files as presentations in a kiosk-style application. So far, so good, our application can handle this no problems.

He has requested as a potential feature that we would have a number of headphone sockets at the front of the kiosk. Each headphone socket would play the same audio presentation in a different language.

I have come up with the idea of encoding a single audio file with the presentation in multiple languages, and each language in a different channel. We would then require a sound card that could decode each channel and output it on a different headphone socket. Thing is, while I'm think the theory is sound, I have absolutely no idea whether this is feasible and what would be required to pull it off.

Any ideas?!

As a side-note: the application uses Media Player as the underlying component to handle the playback of audio and video. I'd appreciate any help as to the software we could use to generate the multi-channel audio stream and the hardware (USB sound card would be fine) that we could use to decode the stream. Thanks!

+2  A: 

You need to use multiple files not channels, its going to be way easier that way.
Instead of using Media Player use DirectShow (on .NET you have DirectShow.NET), In DirectShow you have the notation of Multiple files on the same graph.

You will be able to control to which audio device play which files, and your Play, Pause, Stop commands will be preformed on all files without you need to worry about syncing. There are many samples on how to build media player like with DiectShow, extending them to use multiple files should be really easy.

For HW take a look at this (USB with 8 output channels)

Shay Erlichmen
Shay, thanks for your answer. There is a significant amount of code written surrounding the management of playlists and we don't have support for playing multiple items at the same time. That's why I was hoping that we could avoid it. I was hoping there'd be a way of doing it with just one file. Good find on the hardware though!
Phill
+2  A: 

I think with Shay's hardware you've got a complete solution: Encode a 7.1 file with a different mono voice track on each channel. Use the 8 channel output device in 7.1 mode, with a different headset in each port, and you've got it. Or, if you only have 6 languages, a 5.1 file would work. Many PC's have 5.1 outputs built in, you'd only need 3 splitters to break out the left and right channels from each jack.

You can do the encoding with Windows Media Encoder, or other pro audio tool.

AShelly