samdel / chromecast-desktop-audio-streamer Goto Github PK
View Code? Open in Web Editor NEWStream the sound of your desktop to your Chromecast Audio device
License: MIT License
Stream the sound of your desktop to your Chromecast Audio device
License: MIT License
Try to detect connect errors / devices that are powered off faster (<= 1 second).
Running v 2.4.14 continuously for 6 days, casting to two Speaker Groups. Sometime overnight, the DAS quit working, and Windows displayed the attached Error Box. No additional data was available, and Windows closed the App, so I could not get the Log File. Windows 10 Pro 64-bit, with 16 GB RAM.
It seemed to be very stable throughout the week until this happened. I restarted DAS, and it is running OK now,
This is to facilitate casting from other sources without DAS taking over immediately.
(I understand this will not achieve its purpose 100% as Google doesn't always terminate the cast on a Stop command through the assistant but it will help in other situations)
I have a device doing this, with "Automatically start last used... " option checked (only).
I'm using one group, which does start automatically as intended, and this single device comes along for the ride regardless. This is 2.4.0
I have noted some 'interesting' observations, and am sharing them here in case they may offer some ideas for the User Interface. See attached PDF...
Do you work with xamarin.forms? If yes, how? Do you have a manual?
Let's discuss 2.2 development here.
I just had a thought.
Would be so cool to be able to initiate/start the stream from a Google Home device.
I guess this would be possible by having an Android app with Google Assistant support. That app would then connect to the Desktop Audio Streamer app (via static IP:port ?).
You could then initiate a stream by telling the Home device "Ok Google. Talk to Desktop Streamer. Stream HTPC." (and even shorter with Assistant Shortcuts)
The Android app would then send a signal to the desktop app to start the stream.
Maybe there is an easier way to achieve this.
Unfortunately I'm neither a mobile app developer or a desktop app developer. I just have crazy ideas :)
Thank you for this software btw. It's the only one for this purpose that works for me (and it's tiny and fast).
The DAS dropped all speaker connections, and repeatedly attempts to reconnect, but fails almost immediately. This has been happening for about two days...
I rebooted my router, and the PC, and tried again with same issue:
To reproduce: create a group (with at least two devices - if the group has only one device, all is well). Cast from DAS, then click stop. DAS will immediately reconnect.
This also happens if you start casting to a speaker in this group from elsewhere. The cast will start, however DAS will immediately reconnect, interrupting the other stream.
It may also be related that groups may show up twice in the device list, but this is not consistent. They are not duplicated in user.config
(As an obvious workaround I'm casting to individual devices, but the motivation to use groups is because they seemed to be more reliable in avoiding single device dropouts. I haven't been casting to multiple devices with 2.4 though, so that was based on experience with earlier versions)
Very interesting project!
I am curious if there is a way to change the settings for the sound source more or less programatically?
Also, would you kow if it is possible to select individual pairs in 5.1 sound cards?
Windows7
This is for people who cast announcements or similar so the device could be used for other purposes as well.
Let's discuss 2.6 development here.
Show the status of capturing/streaming in the user interface.
It's confusing now when the PC's soundcard is not playing anything, then there's nothing captured and streamed (stream silence then?).
Green/blinking when data is streamed, red when no data is streamed!?
Hey Guys,
maybe you have an idea: the program finds an connects to my chromecast 3, the device window turns green and says "buffering 0:00" but there is no sound. After a while it returns to idle again.
Thanks in advance for your help and kudos for SamDel and his efforts :)
That's what the log says:
Add IP4 addresses: 192.168.178.23 - 127.0.0.1
Set size, height: 550 width: 850
Discovered device: Schuppen 192.168.178.34:8009 null
out [21:22:29][192.168.178.34:8009] [NotConnected]: {"type":"CONNECT"}
out [21:22:30][192.168.178.34:8009] [NotConnected]: {"requestId":1,"type":"GET_STATUS"}
in [21:22:30] [192.168.178.34:8009] [NotConnected]: {"type":"CLOSE"}
[21:22:30] [192.168.178.34:8009] ResumePlaying
out [21:22:32][192.168.178.34:8009] [NotConnected]: {"type":"CONNECT"}
out [21:22:32][192.168.178.34:8009] [NotConnected]: {"requestId":2,"type":"GET_STATUS"}
in [21:22:32] [192.168.178.34:8009] [NotConnected]: {"requestId":2,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"58b6685b-b788-479b-82b3-904bd0f6a52f","statusText":"Default Media Receiver","transportId":"58b6685b-b788-479b-82b3-904bd0f6a52f"}],"userEq":{},"volume":{"controlType":"attenuation","level":1.0,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:22:34][192.168.178.34:8009] [LaunchingApplication]: {"type":"CONNECT"}
out [21:22:34][192.168.178.34:8009] [LaunchingApplication]: {"appId":"CC1AD845","requestId":3,"type":"LAUNCH"}
in [21:22:34] [192.168.178.34:8009] [LaunchingApplication]: {"requestId":0,"status":{"userEq":{},"volume":{"controlType":"attenuation","level":1.0,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
in [21:22:35] [192.168.178.34:8009] [LaunchingApplication]: {"requestId":3,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"457debe9-8aca-4c06-9e6a-fe765c46eec3","statusText":"Default Media Receiver","transportId":"457debe9-8aca-4c06-9e6a-fe765c46eec3"}],"userEq":{},"volume":{"controlType":"attenuation","level":1.0,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:22:35][192.168.178.34:8009] [LaunchedApplication]: {"type":"CONNECT"}
out [21:22:35][192.168.178.34:8009] [LoadingMedia]: {"autoplay":true,"currentTime":0,"activeTrackIds":[],"repeatMode":"REPEAT_OFF","media":{"contentId":"http://192.168.178.23:52596/","contentType":"audio/wav","streamType":"BUFFERED","metadata":{"type":0,"metadataType":0,"title":"Desktop Audio Streamer","images":[]}},"requestId":1,"type":"LOAD"}
in [21:22:35] [192.168.178.34:8009] [LoadingMedia]: {"type":"MEDIA_STATUS","status":[],"requestId":0}
in [21:22:35] [192.168.178.34:8009] [LoadingMedia]: {"type":"MEDIA_STATUS","status":[{"mediaSessionId":1,"playbackRate":1,"playerState":"IDLE","currentTime":0,"supportedMediaCommands":274447,"volume":{"level":1,"muted":false},"activeTrackIds":[],"media":{"contentId":"http://192.168.178.23:52596/","contentType":"audio/wav","streamType":"BUFFERED","metadata":{"type":0,"metadataType":0,"title":"Desktop Audio Streamer","images":[]}},"currentItemId":1,"extendedStatus":{"playerState":"LOADING","media":{"contentId":"http://192.168.178.23:52596/","contentType":"audio/wav","streamType":"BUFFERED","metadata":{"type":0,"metadataType":0,"title":"Desktop Audio Streamer","images":[]}}},"repeatMode":"REPEAT_OFF"}],"requestId":0}
in [21:22:35] [192.168.178.34:8009] [Idle]: {"requestId":0,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"457debe9-8aca-4c06-9e6a-fe765c46eec3","statusText":"Casting: Desktop Audio Streamer","transportId":"457debe9-8aca-4c06-9e6a-fe765c46eec3"}],"userEq":{},"volume":{"controlType":"attenuation","level":1.0,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
in [21:22:36] [192.168.178.34:8009] [Idle]: {"type":"MEDIA_STATUS","status":[{"mediaSessionId":1,"playbackRate":1,"playerState":"BUFFERING","currentTime":0,"supportedMediaCommands":274447,"volume":{"level":1,"muted":false},"activeTrackIds":[],"currentItemId":1,"repeatMode":"REPEAT_OFF"}],"requestId":0}
out [21:22:44][192.168.178.34:8009] [Buffering]: {"requestId":4,"type":"GET_STATUS"}
out [21:22:59][192.168.178.34:8009] [Buffering]: {"requestId":5,"type":"GET_STATUS"}
out [21:23:14][192.168.178.34:8009] [Buffering]: {"requestId":6,"type":"GET_STATUS"}
out [21:23:29][192.168.178.34:8009] [Buffering]: {"requestId":7,"type":"GET_STATUS"}
out [21:23:34][192.168.178.34:8009] [Buffering]: {"volume":{"level":0.95},"requestId":8,"type":"SET_VOLUME"}
in [21:23:34] [192.168.178.34:8009] [Buffering]: {"device":{"capabilities":196613,"deviceId":"c94524c6-829c-86aa-345f-705f5604cfdc","name":"Schuppen","volume":{"level":0.949999988079071,"muted":false}},"requestId":0,"type":"DEVICE_UPDATED"}
in [21:23:34] [192.168.178.34:8009] [Buffering]: {"requestId":8,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"457debe9-8aca-4c06-9e6a-fe765c46eec3","statusText":"Casting: Desktop Audio Streamer","transportId":"457debe9-8aca-4c06-9e6a-fe765c46eec3"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:23:44][192.168.178.34:8009] [Buffering]: {"requestId":9,"type":"GET_STATUS"}
out [21:23:59][192.168.178.34:8009] [Buffering]: {"requestId":10,"type":"GET_STATUS"}
out [21:24:14][192.168.178.34:8009] [Buffering]: {"requestId":11,"type":"GET_STATUS"}
out [21:24:29][192.168.178.34:8009] [Buffering]: {"requestId":12,"type":"GET_STATUS"}
in [21:24:43] [192.168.178.34:8009] [Buffering]: {"requestId":1,"type":"LOAD_FAILED","detailedErrorCode":104}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":5}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":6}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":7}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":9}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":10}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":11}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[],"requestId":12}
in [21:24:43] [192.168.178.34:8009] [LoadFailed]: {"type":"MEDIA_STATUS","status":[{"mediaSessionId":1,"playbackRate":1,"playerState":"IDLE","currentTime":0,"supportedMediaCommands":274447,"volume":{"level":1,"muted":false},"media":{"contentId":"http://192.168.178.23:52596/","contentType":"audio/wav","streamType":"BUFFERED","metadata":{"type":0,"metadataType":0,"title":"Desktop Audio Streamer","images":[]},"breakClips":[],"breaks":[]},"currentItemId":1,"idleReason":"ERROR"}],"requestId":4}
in [21:24:43] [192.168.178.34:8009] [Idle]: {"requestId":0,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"457debe9-8aca-4c06-9e6a-fe765c46eec3","statusText":"Default Media Receiver","transportId":"457debe9-8aca-4c06-9e6a-fe765c46eec3"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:24:44][192.168.178.34:8009] [Idle]: {"requestId":13,"type":"GET_STATUS"}
[21:24:44] [192.168.178.34:8009] ResumePlaying
in [21:24:44] [192.168.178.34:8009] [Idle]: {"requestId":13,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"457debe9-8aca-4c06-9e6a-fe765c46eec3","statusText":"Default Media Receiver","transportId":"457debe9-8aca-4c06-9e6a-fe765c46eec3"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:24:48][192.168.178.34:8009] [LaunchingApplication]: {"type":"CONNECT"}
out [21:24:48][192.168.178.34:8009] [LaunchingApplication]: {"appId":"CC1AD845","requestId":14,"type":"LAUNCH"}
in [21:24:48] [192.168.178.34:8009] [LaunchingApplication]: {"requestId":0,"status":{"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
in [21:24:48] [192.168.178.34:8009] [LaunchingApplication]: {"type":"CLOSE"}
in [21:24:49] [192.168.178.34:8009] [Closed]: {"requestId":14,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"bf9e764c-fd92-4e44-a0d3-8432570227ef","statusText":"Default Media Receiver","transportId":"bf9e764c-fd92-4e44-a0d3-8432570227ef"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:24:50][192.168.178.34:8009] [Connected]: {"requestId":15,"type":"GET_STATUS"}
in [21:24:50] [192.168.178.34:8009] [Connected]: {"requestId":15,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"bf9e764c-fd92-4e44-a0d3-8432570227ef","statusText":"Default Media Receiver","transportId":"bf9e764c-fd92-4e44-a0d3-8432570227ef"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:24:59][192.168.178.34:8009] [Connected]: {"requestId":16,"type":"GET_STATUS"}
in [21:24:59] [192.168.178.34:8009] [Connected]: {"requestId":16,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"bf9e764c-fd92-4e44-a0d3-8432570227ef","statusText":"Default Media Receiver","transportId":"bf9e764c-fd92-4e44-a0d3-8432570227ef"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
out [21:25:14][192.168.178.34:8009] [Connected]: {"requestId":17,"type":"GET_STATUS"}
in [21:25:14] [192.168.178.34:8009] [Connected]: {"requestId":17,"status":{"applications":[{"appId":"CC1AD845","displayName":"Default Media Receiver","iconUrl":"","isIdleScreen":false,"launchedFromCloud":false,"namespaces":[{"name":"urn:x-cast:com.google.cast.cac"},{"name":"urn:x-cast:com.google.cast.debugoverlay"},{"name":"urn:x-cast:com.google.cast.broadcast"},{"name":"urn:x-cast:com.google.cast.media"}],"sessionId":"bf9e764c-fd92-4e44-a0d3-8432570227ef","statusText":"Default Media Receiver","transportId":"bf9e764c-fd92-4e44-a0d3-8432570227ef"}],"userEq":{},"volume":{"controlType":"attenuation","level":0.949999988079071,"muted":false,"stepInterval":0.05000000074505806}},"type":"RECEIVER_STATUS"}
Would it be possible for you to add instructions to aid in setting up the project? I'm having trouble getting rid of 92 build errors and cloning it and opening it up in Visual Studio 2019 (after using InstallerProjects and Microsoft.Multilingual.VSExtension too). Example of one.
CS0234 The type or namespace name 'Practices' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
Let's discuss 2.1 development here.
Hi there. Your tool is awesome!
I use it at work to stream from a computer to a pair a speakers on the next floor.
I suspect my issue has more to do with external factors but several times a day, the cast just stop. Your app shows my device as stopped, and if I press play again, the stream resumes as if nothing happened.
I use a chromecast audio, that is constantly plugged in using the provided socket. It's always shown in my Google Home app so it doesn't seems to be disconnecting. Both the audio source (laptop) and chromecast are right next to a WiFi relay. Maybe it's just the connection and there's nothing that can be done, but are you aware of any other possible causes?
Additionally, is there any way I could automatically restart the stream with a script or something? This would be a dirty workaround but still helpful.
Many thanks anyhow!
I added a device in the config file:
I don't get any errors in the log file, but no device appears in the Devices section of the GUI.
Hi. Just discovered this and trying it out - looks promising, but it doesn't find all of my Chromecast Audio devices. The log (attached below) shows some object reference errors...
[DeviceInformation.GetDeviceInformation] Object reference not set to an instance of an object.
My setup is as follows: 5 x chromecast audio devices with IP addresses .32 to .36, with 2 groups configured (one for whole house, one for just a pair of them). I've tried temporarily disabling my firewall, and also manually entering one of the missing ones in the config file, but they still don't appear. Please let me know if you need any more info to help debug.
Thanks.
This is the error I get when running the application. When I choose to continue, the app finds the chromcast and I hear the "clicks" when adjusting volume on the slider, but streaming doesn't work. Says "buffering" but nothing happens.
Unhandled exception has occurred in you application.
AudioClient:: Initialize casused and error: 0x80070057, "The parameter is incorrect"
************** Exception Text **************
CSCore.CoreAudioAPI.CoreAudioAPIException (0x80070057): IAudioClient::Initialize caused an error: 0x80070057, "The parameter is incorrect.".
at CSCore.SoundIn.WasapiCapture.InitializeInternal()
at CSCore.SoundIn.WasapiCapture.Initialize()
at ChromeCast.Desktop.AudioStreamer.Streaming.LoopbackRecorder.StartRecordingDevice()
at ChromeCast.Desktop.AudioStreamer.Application.ApplicationLogic.RecordingDeviceChanged()
at ChromeCast.Desktop.AudioStreamer.MainForm.cmbRecordingDevice_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
at ChromeCast.Desktop.AudioStreamer.MainForm.AddRecordingDevices(MMDeviceCollection devices, MMDevice defaultdevice)
at ChromeCast.Desktop.AudioStreamer.Streaming.LoopbackRecorder.GetDevices(IMainForm mainFormIn)
at ChromeCast.Desktop.AudioStreamer.Application.ApplicationLogic.Start()
at ChromeCast.Desktop.AudioStreamer.MainForm.MainForm_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I just tried this on both my Laptop and my HTPC (Windows 10, connected with HDMI to TV).
On the Laptop it works fine, I can stream audio playback to my Home Minis.
But on the HTPC it never starts streaming the audio, just says "Idle".
I suspect that's because I'm using the HDMI for audio output from the Windows HTPC.
Is there a fix for this?
The audio sounds like a low-bitrate mp3 over my chromecast audio.
This is a good application but the sound quality is a dealbreaker.
Using Windows 10.
Research the audio drop-outs.
Is it due to network load or bad connections?
Can something be changed in the streaming or buffering to prevent drop-outs?
Hi !
I received my Chromecast today and when i tried cast from my laptop (with Chromecast in chrome, ChromeCast Desktop Audio Streamer, or other), the sound is controlled by my laptop mixer, so i have sound on my TV and my laptop, this is very annoying because when i mute my laptop, i mute Chromecast too..
I've tried a bit of things but no one solved my problem. Did someone fix that ?
(Running in win10, have the same Wi-Fi connection for both laptop and chromecast)
I have 2 chromecasts audio (one actually included in JBL Playlist speaker) and they are out of sync (when playing simultaneously).
Am I doing something wrong ?
Right now I have to mute and unmute the computer audio every time after selecting or unselecting a device to stream. Could you please add the option to automatically mute/unmute the audio on the computer when streaming starts/ends? Thanks!
Long story short ...
I have done a factory reset on all devices. I am not able to get a Group to play music.
The Group works fine when I Cast from within the Chrome browser on a Windows computer.
Plus, I created and deleted groups in the Home app to try and get a result. How do i make the deleted groups disappear from Streamer. Thanks.
log01.txt
First off, I love this tool. It fixes all the problems I had with Airfoil before, and it's been super reliable. Thank you for building such an awesome tool. The only thing I would like to see added is something list a REST interface so I can integrate this with my Smartthings setup and start controlling this with my voice. I'm looking to be able to say stuff like "Alexa, turn on my bedroom speaker" or "Alexa, set living room speaker to 80%", and while I'm not looking for a full blown skill, it would be nice to have a stable set of URLs I could tell Smartthings to call, which would be enough of a jumping off point to be able to integrate your app into my system. Even Python bindings would be enough to get me going.
Let's discuss 2.0 development here.
Here's another topic for a future enhancement: Why not incorporate the audio technology that can identify the song that is playing, and display it on the Home Screen? Several Apps do this now: Shazam, SoundHound, and Google Sound Search (https://assistant.google.com/services/a/uid/00000024216d4bb8?hl=en-US ), to name a few. Then there's databases like 'Musipedia' (https://www.musipedia.org/ ), as well as Audio Fingerprinting (https://www.acrcloud.com/identify-songs-music-recognition-online/ ) ... Perhaps one of these services could be integrated with DesktopAudioStreamer to provide a similar result... (Food for thought)
Interestingly, when I now ask Google: "Hey, Google, What song is playing?" Google responds: "You're listening to 'Sandpiper'."... However, when Google is playing from an external source ("Hey, Google, Play sum Jazz.") , the same question results in Google properly identifying and saying the current song and artist...
So at this point, it seems that Google is not aware of the audio content in the DesktopAudioStream ('Sandpiper')... MAYBE, if any of the above references can be integrated, the App could update the screen with the song title (and maybe the artist as well), so it would be displayed along with the App name, For example, the screen would display something like: (" 'Time After Time' by 'Miles Davis' on 'Sandpiper'." -- see image below), AND you could ask Google 'What's playing?', and it would respond audibly with: "You're listening to 'Time After Time' by 'Miles Davis' on 'Sandpiper'."
Originally posted by @FA-Bubba in #29 (comment)
On the id issue, the song name could be retrieved by this without trying to ID the song: https://www.last.fm/api/show/user.getRecentTracks - however I looked around a bit and unfortunately all the various last.fm scrobblers, official and non-official seem to be either dead or on their way out. On the recognition front, Cortana song ID service is also discontinued and Shazam isn't supporting PC anymore, arccloud & audd are payola...
Here is an issue I encountered that is not related to the Streamer App, but I'm describing here in case it may happen to anyone else:...
I have 8 pairs of multimedia stereo speakers that I stream to with the Streamer App via Groups, which keeps all of the speakers in sync. At one point, I noticed one pair of speakers had dropped out of sync, and upon closer analysis, it was clear that this speaker set was receiving two independent streams, with different timing...
Coincidentally, this speaker pair had previously been synced to my phone via Bluetooth, but I had since told my phone to "forget" that speaker set, and they were not showing up in my phone's Bluetooth device list. No other speaker pair had ever been synced to anything via Bluetooth...
It turns out that this 'rogue' speaker pair had autonomously paired via Bluetooth with the PC that was streaming the audio content -- I had never paired any Bluetooth devices to this PC, so this Bluetooth connection was 'spontaneous'. I went into the PC's Bluetooth control panel, and confirmed it was paired to the 'rogue' speaker pair, and that is why those speakers were playing two streams, with one out of sync.
I removed the Speakers from the PC's Bluetooth device list, and the problem was solved. Now that I am aware, that will be the first diagnostic I consider if I ever hear an out-of-sync speaker.
Now that I have music in all rooms, I removed my Google Home Minis from every Group that they were previously assigned to, so now, I can independently set the volume for the Google Home devices, and all speaker pairs that my PC is streaming to... This enables me to ask Google to do things, even if the music volume is low.
Originally posted by @FA-Bubba in #48 (comment)
Another thing, you should attach releases to the release post for each release instead of linking to the release on the repository (waste of space for people who are forking).
Originally posted by @elibroftw in #39 (comment)
This should be considered a question rather than a bug report.
Your software works fine for me except it was quite a tinny sound at first. I went to the windows 10 sound settings page (right click on volume control, click on sound settings) and the sound suddenly turned good. When I close the dialog it gets tinny again. I find it most peculiar that just opening a dialog changes the sound like that but if that's what I need to do it's no big deal. Do you have any ideas off the top of your head why that would happen?
I downloaded and installed audio-cast,exe on my Windows 7 Pro PC (16 GB RAM). Audio-cast sees my Google devices (2 minis, a hub, 1 Chromecast Audio & 1 Chromecast). I selected the 2 Minis & the Chromecast Audio, and heard the connect sound from each speaker. I started a Playlist in iTunes, and it played to all of the speakers, but there a time-lag in the sound stream. That is, the speakers are not sync'd, but output the sound with various delays. The delay can be minor, or significant, with no consistency...
What tools &/or actions can I try to get the sound output to all speakers on the same time-line?
Thank you!
Issue: Unable to minimize the app to tray.
Currently:
Clicking on the minimize icon, minimizes the app but it still shown on the taskbar
Clicking on the close icon, closes the app.
Hi @SamDel,
Would it be possible to offer multilingual support?
I would be able to provide a French translation.
Sincerely,
WikiJM
I'd like to cast to only some of the devices on my network, not all. The mute setting can be used to facilitate that - if the device is muted, then don't start casting to it automatically. Could be an option too. **Update: ** Oops, just noticed the 2.0.x line which takes care of this.. sorry
Add option to Minimize to tray, startup minimized to icon tray.
Technically:
Now when a group has elected a new leader the device box is removed from the user interface and a new one is created. A group should not be removed from the user interface, when there's a new leader the underlying IP address should be changed. When a connection to the leader can't be made the box should turn red. Etc.
User interface:
Change the appearance of the boxes to distinguish between groups and devices.
Show (in the device box) which groups a device is member of, group 1 yellow dots/lines, group 2 orange, etc. Something like that.
I thought I created an issue for this apparently I didn't.
To reproduce:
Create group A with speakers 1 and 2
Start casting from DAS to group A
Try to cast something else (not from DAS) to either speaker 1 or 2.
Result:
Stream will start however DAS will override and take over.
Expected:
DAS won't take over until the stream is stopped.
Reproduced on 2.4.15 (but old issue)
With 2.4.5 (however not a new issue) intermittently the program may stop listening to the Recording Device. The dB meter will not show any signal even though the audio is playing through the recording device. Once this happens it won't recover, but a simple restart will always fix the issue. It's noticeable since I run 24/7.
I'll update if I can get a reliable repro.
There is a 5~10 second latency and cause video not syncing with audio. Is there anyway to reduce the latency? (Ver 1.9.0.0)
Really great app and appreciate your time and effort for developing.
hi,
thanks for your program.
does it work for you?
i installed it via the installer, and it recognises my chromecast tv, and even starts my tv up when my tv is in standby.
but it does not play music. the tv shows the google slideshow, or the blue chromecast icon, but no sound.
the acidhax application does play sound without problems, but i prefer yours because it is much smaller, and has an easy installer.
how can i get it to work?
thanks!
Recognizes my Chromecast, brings up "Desktop Stream", blue bar cycles, and nothing happens. Eventually the UI says "Idle" again.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.