-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RDP Audio Support #30
Comments
@thelamer I am interested in helping here, can we hop on a call to understand how to tackle this issue? |
I am also trying to debug this issue. the
I looked through the source here but nothing stood out. Did you all make any progress on this? |
|
I can confirm @cblk change works. A fully functional handler looks like this: onAudioEnabled(stream: Guacamole.InputStream, mimetype: string) {
const context = Guacamole.AudioContextFactory.getAudioContext()
context.resume();
return Guacamole.AudioPlayer.getInstance(stream, mimetype);
} @vadimpronin I'm happy to open a PR for this if you would merge it. |
Hello, Any help would be appreciated. |
@Mariappan-s Maria, I really love you so much, you could fix my audio problem |
First off sorry for the wall of text.
Short and to the point question does anyone have a functional RDP client with audio support for guacamole-lite they could share?
On the surface I think maybe guacamole-lite might not be passing file/audio output and input streams from guacd to the javascript client through the websocket tunnel. Though I am not sure, thus why I am reaching out.
I have been trying to reverse engineer audio support from the stock java client, and as far as I can tell they do not do anything special and the base guacamole-common should negotiate the additional InputStream needed for the raw PCM audio supported by modern browsers.
In my custom app and the default java client I am using identical code for the client:
https://cdn.jsdelivr.net/npm/guacamole-client@1.0.0/dist/guacamole-client.min.js
When negotiating the connection I am getting identical lines back from guacd with both my custom client/guacamole-lite and the stock java client, so I believe the audio= connectionstring parameters might be redundant as that happens regardless of if they are included or not:
From a debugging standpoint I have gone through and captured
Guacamole.Tunnel.oninstruction
events client side and have noticed that specifically there are noaudio
opcodes being sent to the client to process that are normally processed by this clientside:https://github.com/apache/guacamole-client/blob/32b106b982dc74e71e1cbb3d2c5e0c5b9b9a8bab/guacamole-common-js/src/main/webapp/modules/Client.js#L884
From a due diligence standpoint I use Docker for development and deployment, if anyone is interested in helping out or debugging you can simply run this Docker container:
If you hop on port 8000 the rdp client can be found under
public/js/rdp.js
You can spinup an RDP client and a guacd instance from the web interface on port 3000 under VDI (no parameters are needed outside of the name)
Also just a side note I have functional audio in the VDI endpoints with xrdp and pulseaudio, I have tested them functional with multiple clients including stock guacamole client 1.0.0 and 1.1.0.
Another thing to mention is after this projects(guacamole-lite) inception Guacamole shifted all the audio tunneling code to raw PCM vs a mix of different mimetypes(ogg vorbis etc) in 0.9.9, not sure if that matters just bringing it up.
The text was updated successfully, but these errors were encountered: