Próbuję użyć kodu this w projekcie Unity, ale wygląda na to, że implementacje COM Interop w Mono/.NET są różne, co powoduje awarię lub awarię kodu. Uruchomienie kodu w .NET działa dobrze, ale uruchomienie go z Mono 2.0 (poza Unity) kończy się niepowodzeniem w taki sam sposób, jak w Unity, co sugeruje, że jest to problem z Mono w ogóle, a nie z Unity.COM Interop w Mono 2.0
Jeśli skompiluję i uruchomimy kod w niezmienionej postaci, nie powiedzie się, ponieważ type cast z MMDeviceEnumerator na IIMMDeviceEnumerator nie powiedzie się. Podczas dekorowania wszystkich interfejsów za pomocą [ComInterop], rzutowanie się powiedzie, ale wywołanie GetDefaultAudioEndpoint powoduje awarię Unity/Mono z naruszeniem dostępu.
Trudno jest znaleźć dobrą dokumentację COM Interop na temat Mono w ogóle - w szczególności w odniesieniu do tak starej wersji. Czy to w ogóle możliwe, żeby to działało?
To było dokładnie to, co skończyłem robiąc – Johan