Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
134 stars 2 forks source link

Capture Specific Application Audio for Stream Audio #2662

Open gentlecolts opened 1 month ago

gentlecolts commented 1 month ago

Is your feature request related to a problem? Please describe.

Often I find I would like to be able to share a specific audio stream to resonite, for example a music player. It is massively inconvenient to have to dedicate a physical or virtual audio device to the media player to prevent resonite audio from being captured as well.

Describe the solution you'd like

Resonite should provide an option for capturing individual application audio. This suggestion is based on a similar feature implemented by OBS, which allows it to capture a specific application's audio

Describe alternatives you've considered

One alternative would be some way to filter or exclude resonite's audio from the audio stream for capture, another may be to support streaming from tools such as obs, which already implement these kinds of features. I'm not aware of the technical difficulty of any mentioned approaches, and would leave judgement up to the team, as long as the core need is met.

Additional Context

No response

Requesters

zangooseoo

Frooxius commented 1 month ago

We'd have to research what API's (and C# wrappers for those) are there for capturing specific applications.

If anybody would like to help with this research, it'd be appreciated! That would help speed up implementation of this feature.

gentlecolts commented 1 month ago

The specifics are definitely not something I have any experience with, but in case this helps someone else who peeks at this later, A cursory glance leads me to this post: https://learn.microsoft.com/en-us/samples/microsoft/windows-classic-samples/applicationloopbackaudio-sample/ as a place to start looking

It seems to me there's windows apis to "restrict captured audio data to that rendered by a specific process and any of its child processes" The example given is c++ but I'd imagine whatever apis this is using are available to c#, unsure of the implications for other platforms. I'm also seeing mention of OpenTK and NAudio when just looking around for cross platform audio capture, but unsure if they have the functionality needed for this request.