Захват звука с ТВ-карты с помощью C # - PullRequest
6 голосов
/ 01 сентября 2011

Я написал приложение WPF, которое захватывает отображение и звук с ТВ-карты с помощью кода C #. Я могу получить изображение с ТВ-карты, но не могу получить звук с ТВ-карты. Кстати, я использую .NET Framework 3.5 с Visual Studio 2010. У меня вопрос, как я могу получить звук с ТВ-карты?

Наконец, я попробовал что-то подобное ниже, используя библиотеку DirectSound из DirectX. Однако я получил следующие ошибки.

  1. Лучший перегруженный метод соответствует 'Microsoft.DirectX.DirectSound.Device.SetCooperativeLevel(System.Windows.Forms.Control, Microsoft.DirectX.DirectSound.CooperativeLevel)' имеет недопустимый аргументы.
  2. Аргумент 1: невозможно преобразовать из 'Wpfvideo.MainWindow' в 'System.Windows.Forms.Control'

Код:

private DS.Device soundDevice;
private SecondaryBuffer buffer;
private ArrayList soundlist = new ArrayList();

private void InitializeSound()
{
     soundDevice = new DS.Device();
     soundDevice.SetCooperativeLevel(this, CooperativeLevel.Priority);

    BufferDescription description = new BufferDescription();
    description.ControlEffects = false;
    buffer = new SecondaryBuffer(CaptureDeviceName, description, soundDevice);
    buffer.Play(0, BufferPlayFlags.Default);
    SecondaryBuffer newshotsound = buffer.Clone(soundDevice);
    newshotsound.Play(0, BufferPlayFlags.Default);
} 

Ответы [ 2 ]

4 голосов
/ 01 сентября 2011

Попробуйте это:

var windowInteropHelper = new WindowInteropHelper(this);
soundDevice = new DS.Device();
soundDevice.SetCooperativeLevel(windowInteropHelper.Handle, CooperativeLevel.Priority);
0 голосов
/ 01 сентября 2011

При вызове soundDevice.SetCooperativeLevel(...) в качестве первого параметра ожидается элемент управления winforms, и вы пытаетесь задать ему окно WPF (которое не является элементом управления winforms).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...