Forum Discussion

Nicholas Plant's avatar
Nicholas Plant
Iron Contributor
Oct 09, 2023

Shared screen in custom Mesh environment

Going by the promotional materials Mesh has a concept of the "stage" for a shared screen and gallery (where those on a standard teams call - i.e. with no avatar, appear).  I don't see any way in the mesh toolkit or the Mesh 101 example to add that  stage screen.  Obviously when building a custom environment one would expect to be able to place that stage somewhere.  So you would expect to see it as a game object or as a render texture to place upon a game object. However,  I don't see any such thing. Any ideas ??  I strongly suspect that "under the hood" the "stage" is an Azure Communications Services endpoint (Teams is built on top of ACS - so it is logical that that is how it connects to Unity) - it would be great if that is the case. The ability to simply add such an ACS endpoint to the Unity scene would enable huge flexibility as for e.g. ACS has support (currently in private preview) for bringing in an SRT stream feed.  Part of the reason that I suspect that the "stage" is ACS under the hood is that this https://dev.azure.com/aipmr/MixedReality-Unity-Packages/_artifacts/feed/Unity-packages/Npm/com.azure.communication.calling/overview/1.0.0-beta.1  SDK which was released in Beta in June brings ACS  calling to Unity.   It would be very helpful if someone from Microsoft can provide some guidance as it would help with knowing which parts of the learning curve we need to direct our attention to. 

7 Replies

    • Nicholas Plant's avatar
      Nicholas Plant
      Iron Contributor
      • CameronMicka  Thanks, that is very helpful information. So as I understand it, in mesh.toolkit.sharedcontent there is the concept of the controllable. This controllable is a cloud script which then orchestrates  the behaviour of  an artifact in a server authoritative way - for e,g. syncing the starting and stopping of a video player (which is an artifact) for each user in the event.  Is that correct ?  How do I add an artifact such as the "stage* to my unity project. Can I make it a child of a game object in the usual way ?  Presumably it will be possible at some point to author my own cloud script to build my own controllable to control my own artifact in a server authoritative way ?? Am I "barking up the right tree" ? I can see the video player on the mesh 101 demo but it doesn't seem to have a controllable cloud script applied to it. Meaning, that I think each event participant experiences the play of the video asynchronously to others !  So I don't think it is an "artifact" in the way the stage is. Can Microsoft please update the demo to illustrate the use of the stage artifact and a mesh.toolkit.sharedcontent controllable because at the moment substantial areas of functionality do not seem to be illustrated. 
      • CameronMicka's avatar
        CameronMicka
        Icon for Microsoft rankMicrosoft
        Thanks Nicholas for the feedback! Yes, you are correct the video played in Mesh 101 is not synchronized (in theory if all users are in the event when the video starts it would be synchronized, but it won't synchronize for late joiners or people in other shards). If you need a synchronized video, I recommend the "video" artifact" (https://learn.microsoft.com/en-us/mesh/events-guide/customize-event#add-content). The video artifact is added like the stage artifact. It is added in the Mesh app after you have completed authoring and uploading your environment in Unity.

Resources