Placeholder-Software / Dissonance

Unity Voice Chat Asset
71 stars 5 forks source link

Platform not supported! Platform: WSAPlayerX86 #149

Closed mechpil0t closed 5 years ago

mechpil0t commented 5 years ago

As Unet is dead I was planning to move to webrtc solution for dissonance, however I have an issue on Hololens

I get the following errors: "Platform not supported! Platform: WSAPlayerX86" "Unable to load DLL webrtccsharpwrap"

I realise this issue is with the WebRTC Network (becausewhynot) plugin and not dissonance but I was wondering if anyone had had this issue before or found a work around? I the webrtc devs (becausewhynot) dont seem to have a forum.

(dissonance + WebRTC Network is working on android and PC)

more logs:

Platform not supported! Platform: WSAPlayerX86
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
Byn.Net.WebRtcNetworkFactory:LogNativeSupportInfo()
Byn.Net.WebRtcNetworkFactory:TryStaticInitialize()
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent()
Byn.Common.UnitySingleton`1:get_Instance()
Dissonance.Integrations.PureP2P.PureP2PServer:Connect()
Dissonance.Networking.BaseCommsNetwork`5:StartServer(TServerParam)
Dissonance.Networking.Session:StartServer()
Dissonance.Networking.Session:Enter()
Dissonance.Networking.BaseCommsNetwork`5:ChangeState(IState)
Dissonance.Networking.BaseCommsNetwork`5:LoadState()
Dissonance.Networking.BaseCommsNetwork`5:Update()
Dissonance.Integrations.PureP2P.PureP2PCommsNetwork:Update()

(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)

DllNotFoundException: Unable to load DLL 'webrtccsharpwrap': The specified module could not be found.
  at WebRtcCSharp.WebRtcSwigPINVOKE+SWIGExceptionHelper..cctor () [0x00000] in <00000000000000000000000000000000>:0 
  at WebRtcCSharp.WebRtcSwigPINVOKE..cctor () [0x00000] in <00000000000000000000000000000000>:0 
  at WebRtcCSharp.WebRtcWrap.GetVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Net.Native.NativeWebRtcNetworkFactory.GetWrapperVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.Internal_AddComponentWithType (System.Type componentType) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.AddComponent[T] () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Common.UnitySingleton`1[T].get_Instance () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PServer.Connect () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer (TServerParam connectParams) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].Enter () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].ChangeState (Dissonance.Networking.BaseCommsNetwork`5+IState[TServer,TClient,TPeer,TClientParam,TServerParam] newState) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].LoadState () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].Update () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PCommsNetwork.Update () [0x00000] in <00000000000000000000000000000000>:0 
Rethrow as TypeInitializationException: The type initializer for 'WebRtcCSharp.WebRtcSwigPINVOKE.SWIGExceptionHelper' threw an exception.
  at WebRtcCSharp.WebRtcSwigPINVOKE..cctor () [0x00000] in <00000000000000000000000000000000>:0 
  at WebRtcCSharp.WebRtcWrap.GetVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Net.Native.NativeWebRtcNetworkFactory.GetWrapperVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.Internal_AddComponentWithType (System.Type componentType) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.AddComponent[T] () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Common.UnitySingleton`1[T].get_Instance () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PServer.Connect () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer (TServerParam connectParams) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].Enter () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].ChangeState (Dissonance.Networking.BaseCommsNetwork`5+IState[TServer,TClient,TPeer,TClientParam,TServerParam] newState) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].LoadState () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].Update () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PCommsNetwork.Update () [0x00000] in <00000000000000000000000000000000>:0 
Rethrow as TypeInitializationException: The type initializer for 'WebRtcCSharp.WebRtcSwigPINVOKE' threw an exception.
  at WebRtcCSharp.WebRtcWrap.GetVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Net.Native.NativeWebRtcNetworkFactory.GetWrapperVersion () [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.Internal_AddComponentWithType (System.Type componentType) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.GameObject.AddComponent[T] () [0x00000] in <00000000000000000000000000000000>:0 
  at Byn.Common.UnitySingleton`1[T].get_Instance () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PServer.Connect () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer (TServerParam connectParams) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].StartServer () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5+Session[TServer,TClient,TPeer,TClientParam,TServerParam].Enter () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].ChangeState (Dissonance.Networking.BaseCommsNetwork`5+IState[TServer,TClient,TPeer,TClientParam,TServerParam] newState) [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].LoadState () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Networking.BaseCommsNetwork`5[TServer,TClient,TPeer,TClientParam,TServerParam].Update () [0x00000] in <00000000000000000000000000000000>:0 
  at Dissonance.Integrations.PureP2P.PureP2PCommsNetwork.Update () [0x00000] in <00000000000000000000000000000000>:0 
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent()
Byn.Common.UnitySingleton`1:get_Instance()
Dissonance.Integrations.PureP2P.PureP2PServer:Connect()
Dissonance.Networking.BaseCommsNetwork`5:StartServer(TServerParam)
Dissonance.Networking.Session:StartServer()
Dissonance.Networking.Session:Enter()
Dissonance.Networking.BaseCommsNetwork`5:ChangeState(IState)
Dissonance.Networking.BaseCommsNetwork`5:LoadState()
Dissonance.Networking.BaseCommsNetwork`5:Update()
Dissonance.Integrations.PureP2P.PureP2PCommsNetwork:Update()
martindevans commented 5 years ago

Unfortunately WebRTC network simply doesn't support UWP at the moment, as far as I can see no workaround is possible (the DLL is not not open source, so you can't compile it yourself for the platform). I had a quick look around their site and did find this mention of UWP:

V0.983 also adds a the first purchasable extra that won’t be part of the asset version: The latest development version for UWP/HoloLens. Please inquire by email for more detail.

So I think the only way you will get UWP support is to email and ask if you can purchase that.

mechpil0t commented 5 years ago

thanks for the information I contacted the developer and yes buying (at great expense) the UWP plugin would be the only option at the moment

Feel free to close this issue

People have got web rtc working on hololens (github.com/DanAndersen/webrtc-hololens-unity-docs) but its a totally different plugin

martindevans commented 5 years ago

People have got web rtc working on hololens (github.com/DanAndersen/webrtc-hololens-unity-docs) but its a totally different plugin

Don't forget that Dissonance supports custom network backends - they're really not too complex to build! Once the basic network session is setup you just need to setup: