Получение NotSupportedException с аудио-библиотекой CSCore - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь получить конечную точку аудио по умолчанию, используя CSCore (https://github.com/filoe/cscore), работающий в Unity, и я получаю System.NotSupportedException. Я проверяю это с помощью инфраструктуры тестирования Unity NUnit. Странно, когдазапуск кода в редакторе, он работает, но сборки получают это исключение. Может кто-нибудь объяснить, почему это происходит?

Сборки, которые я делаю, - x64, и я проверил, что используемая мной DLL былапостроен как для x86, так и для x64. Я использую DLL версии 1.2.0. Тестовый код и трассировка стека исключений представлены ниже:

[Test]
public void GetAudioEndpoint_Default_NoException()
{
    Assert.DoesNotThrow(delegate ()
    {
        var deviceEnumerator = new MMDeviceEnumerator();
        var device = deviceEnumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
    });
}
GetAudioEndpoint_Default_NoException (0.039s)
---
Expected: No Exception to be thrown
  But was:  <System.NotSupportedException: Specified method is not supported.
  at (wrapper cominterop) CSCore.CoreAudioAPI.MMDeviceEnumerator+MMDeviceEnumeratorObject..ctor()
  at CSCore.CoreAudioAPI.MMDeviceEnumerator.CreateMmDeviceEnumerator () [0x00000] in <b6880cc671004d3aa0cc66420dbddb79>:0 
  at CSCore.CoreAudioAPI.MMDeviceEnumerator..ctor () [0x00000] in <b6880cc671004d3aa0cc66420dbddb79>:0 
  at CSCore.Tests.DeviceTests+<>c.<GetAudioEndpoint_Default_NoException>b__0_0 () [0x00001] in ***\DeviceTests.cs:13 
  at NUnit.Framework.Constraints.ThrowsConstraint+VoidInvocationDescriptor.Invoke () [0x00001] in <59819be142c34115ade688f6962021f1>:0 
  at NUnit.Framework.Constraints.ThrowsConstraint+ExceptionInterceptor.Intercept (System.Object invocation) [0x0000a] in <59819be142c34115ade688f6962021f1>:0 >
---
at CSCore.Tests.DeviceTests.GetAudioEndpoint_Default_NoException () [0x00001] in ***\DeviceTests.cs:11

1 Ответ

0 голосов
/ 02 мая 2019

Вы импортировали cscore из хранилища активов? Если нет, то вам нужно добавить dll в папку плагинов (если она у вас есть, сделайте еще одну).

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