Closed jasonpixeldash closed 3 years ago
Thanks for reporting this. Could I get you to check a few things to help narrow it down.
VoicePlayerState.IsSpeaking
is a totally different code path for local and remote players, although it's possible they're both broken somehow.Please make sure to test these things with Mode: Push To Talk
so that you're certain when you should be transmitting:
It definitely happens for both local and remote players. As for your other questions, the problem is that this issue does not happen in editor. Its only in a build of the game where this is an issue, so I can't check the inspectors as it's all correct when testing in editor.
In that case could you run this code (maybe hook it up to a button press, so you can trigger it at will when you're certain you shouldn't be transmitting):
void LogDissonanceSpeakingData()
{
Debug.Log("Room Channels Count: " + _roomChannels.Count);
foreach (var channel in _roomChannels)
Debug.Log(" - " + channel.Key + "/" + channel.Value.TargetId + "/" + channel.Value.IsOpen);
Debug.Log("Player Channels Count: " + _playerChannels.Count);
foreach (var channel in _playerChannels)
Debug.Log(" - " + channel.Key + "/" + channel.Value.TargetId + "/" + channel.Value.IsOpen);
}
This will log out all of the channels that are sending voice. For VoicePlayerState.IsSpeaking
to be true
for the local player there must be a channel open.
We've had a couple of Dissonance releases since the last comment on this issue so I'm going to close this for now. If you've still got an issue on the latest version (8.0.0) don't hesitate to comment here and I'll re-open the issue :)
Context
VoicePlayerState.IsSpeaking is always returning 'true' on MacOS build. We are using this to track if the local or remote player is talking and to display a 'speaking' graphic on screen. This works fine on Windows and Linux platforms, but for MacOS it does not. Oddly enough, in MacOS Unity editor, this works fine as well. The issue only occurs in MacOS build.
Expected Behavior
VoicePlayerState.IsSpeaking correctly returns false if the player is not speaking.
Actual Behavior
VoicePlayerState.IsSpeaking always returns true for MacOS player (either as local player or remote player).
Workaround
None found yet....
Fix
N/a
Steps to Reproduce
Your Environment
Dissonance version used: 7.1.1
Unity version: 2019.4.4f1
Editor Operating System and version: MacOS Catalina 10.15.7
Build Settings: MacOS release/dev build