2016-01-22 5 views
0

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

Мне нужно добавить поддержку для воспроизведения нескольких видеороликов, и, в свою очередь, мне нужно настроить источники звука для каждого из видео.

Мысли о том, как достичь этого:

  1. Установка аудио конечной точки AXWindowsMediaPlayer к моему указанному устройству (я знаю, что могу сделать это в программе, Windows Media Player, но не знаю, как в коде).
  2. Воспроизвести видео с помощью WMP и передать аудио с помощью NAudio.

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

+0

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

+0

Я делал это в прошлом с помощью directshow, вы создаете фильтр, тогда вы удаляете звуковой рендеринг по умолчанию, добавляете тот, который хотите использовать, и снова соединяйте график. Однако directshow как-то считается устаревшим, поэтому могут быть более «современные» способы его реализации. Я не думаю, что вы сможете это сделать только с помощью axWinMediaPlayer, хотя – yms

+0

@yms. Похоже, что медиа-фонд заменил directshow (с точки зрения перспективы). Я знаю, что naudio использует это, поэтому, возможно, маршрут может работать ... – webnoob

ответ

1

Для этого я использовал NAUDIO.

Это код, который я использовал:

var waveReader = new MediaFoundationReader(playListItem.FilePath); 
_waveOut = new WaveOut {DeviceNumber = playListItem.PlayerScreen.AudioDevice.Id}; 
_waveOut.Init(waveReader); 
wmPlayer.settings.volume = 0; 
wmPlayer.URL = playListItem.FilePath; 
_waveOut.Play(); 

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

  • Нет связанных вопросов^_^