millicast / millicast-player-unreal-engine-plugin

Millicast Player plugin for Unreal Engine
Other
19 stars 15 forks source link

Audio breaks with 2 Streams and one closes #73

Closed MaxDorn96 closed 9 months ago

MaxDorn96 commented 1 year ago

Hello dear Millicast Team.

We are currently running into the Issue that we can have 2 Millicast Screenshare Blueprints in the World which work independently, but once 2 Streams run at the same time and one stops sharing the Audio of the other one (I assume the Audio of all) start to break.

A while ago you implemented a "RegisterAudioComponent" Function for me to use to help with Audio so it can be Independent for each Blueprint.

Could it be that it breaks since I still have the OnAudio connected with no Consumer? image

Since everybody would share the same Consumer aka none it might break?

So my Question is if that was a known Issue already since im still on the bb8fc1f142879f9110c19e561345d1f9ff094108 commit and my second Question would be if I could or rather should disconnect OnAudio If I use RegisterAudioComponent on the Millicast Subscriber anyway.

MaxDorn96 commented 1 year ago

I also tried with the AddConsumer on OnAudioTrack to be disconnected, so that only RegisterAudioComponent gets fired.

I am still unsure why One Stream is able to affect another since both Blueprints in the world should have Independent Values and Independent Audio Components, they both check for their StreamID to be started and OnActive/Inactive nothing more happens that they Take their own Plane and Switch the Material, nothign ever interacts directly with another Blueprint of its kind.

dbaldassi commented 1 year ago

I will try to reproduce it. So you have two different blueprint in the same world, and each one receive a stream ?

MaxDorn96 commented 1 year ago

Yes, its the same Blueprint with exposed Variables which we change

So each Blueprint has different Stream Names, Tokens and Stream URL, Millicast Sources, Millicast Textures and Millicast Texture Players, these are Variables which we define in the Blueprints which we place in the wolrd itself

On BeginPlay we use the Components and RegisterAudioComponent and basically do what the Documentation also does which basically is Looping with a Timer till we are able to Subscribe to the Source and OnActive and OnInactive are used to change the Texture on the Plane as well as OnVideoTrack to Add The Millicast Texture Player as a Consumer and Bind On ResolutionChanged

dbaldassi commented 12 months ago

I actually don't have the issue. So I have two blueprints like this in my world

image

Both blueprint have its own Millicast Source / Texture player

Am I missing something ?

MaxDorn96 commented 11 months ago

May I ask what you need the MillicastAduioActor for?

But basically that was what I tried to do, maybe Ive overcomplicated it by trying to figure stuff out.

Tho in the BeginPlay I fire RegisterAudioComponent manually with the Millicast Source since the Millcast Source is a Variable so I assign the Audio Component to it with this Function (I also fire it before the Subscribe like it says in the comments of the Function).

I Will do more testing and trying to simplify or share my Setup as well.

dbaldassi commented 11 months ago

My MillicastAudioActor in this blueprint is not used (it was for a previous setup). But if oyu need you can get the AudioComponent of the MillicastAudioActor and register it, so the audio will play through the MillicastAudioActor in the scene