Modus Samen
In dit artikel wordt beschreven hoe u de Microsoft Teams-modus samen kunt implementeren met Azure Communication Services-aanroepende SDK's. De modus Samen verbetert virtuele vergaderingen en gesprekken, waardoor ze zich persoonlijker voelen. Door een uniforme weergave te maken die iedereen op een gedeelde achtergrond plaatst, kunnen deelnemers naadloos verbinding maken en effectief samenwerken.
Belangrijk
De functionaliteit die in dit artikel wordt beschreven, is momenteel beschikbaar als openbare preview. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Ondersteuning
In de volgende tabellen wordt ondersteuning gedefinieerd voor de modus Together in Azure Communication Services.
Identiteiten en oproeptypen
In de volgende tabel ziet u ondersteuning voor oproep- en identiteitstypen.
Identiteiten | Teams-vergadering | Ruimte | 1:1 oproep | Groepsgesprek | 1:1 Teams-interopgesprek | Gesprek tussen Teams groeperen |
---|---|---|---|---|---|---|
Communication Services-gebruiker | ✔️ | ✔️ | ✔️ | |||
Microsoft 365-gebruiker | ✔️ | ✔️ | ✔️ |
Operations
In de volgende tabel ziet u ondersteuning voor afzonderlijke API's in het aanroepen van SDK voor afzonderlijke identiteitstypen.
Operations | Communication Services-gebruiker | Microsoft 365-gebruiker |
---|---|---|
Stroom voor de modus Samen starten | ✔️ [1] | |
Stroom voor de modus Samenbrengen | ✔️ | ✔️ |
Grootte van scène ophalen | ✔️ | ✔️ |
Zitkaart ophalen | ✔️ | ✔️ |
Scène wijzigen | ||
Stoeltoewijzing wijzigen |
[1] Start Together Mode kan alleen worden aangeroepen door een Microsoft 365-gebruiker met de rol van organisator, mede-organisator of presentator.
SDK's
In de volgende tabel ziet u ondersteuning voor de functie Together Mode in afzonderlijke Azure Communication Services SDK's.
Platformen | Web | Webgebruikersinterface | iOS | iOS-gebruikersinterface | Android | Android-gebruikersinterface | Windows |
---|---|---|---|---|---|---|---|
Wordt ondersteund | ✔️ |
Installeer de SDK
Gebruik de npm install
opdracht om de Common and Calling SDK voor Azure Communication Services voor JavaScript te installeren:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Vereiste objecten initialiseren
Een CallClient
exemplaar is vereist voor de meeste aanroepbewerkingen. Wanneer u een nieuw CallClient
exemplaar maakt, kunt u deze configureren met aangepaste opties, zoals een Logger
exemplaar.
Met het CallClient
exemplaar kunt u een CallAgent
exemplaar maken door het createCallAgent
aan te roepen. Deze methode retourneert asynchroon een CallAgent
exemplaarobject.
De createCallAgent
methode gebruikt CommunicationTokenCredential
als argument. Het accepteert een toegangstoken van een gebruiker.
U kunt de getDeviceManager
methode op het CallClient
exemplaar gebruiken om toegang te krijgen tot deviceManager
.
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()
Sdk-connectiviteit met Microsoft-infrastructuur het beste beheren
Het Call Agent
exemplaar helpt u bij het beheren van gesprekken (om aanroepen deel te nemen of te starten). Als u wilt werken met uw aanroepende SDK, moet u verbinding maken met de Microsoft-infrastructuur om meldingen van binnenkomende oproepen te ontvangen en andere gespreksgegevens te coördineren. Uw Call Agent
heeft twee mogelijke statussen:
Verbonden : een Call Agent
connectionStatue-waarde van Connected
het middel dat de client-SDK is verbonden en meldingen van de Microsoft-infrastructuur kan ontvangen.
Verbinding verbroken - Een Call Agent
connectionStatue-waarde van Disconnected
statussen is er een probleem dat verhindert dat de SDK verbinding maakt. Call Agent
moet opnieuw worden gemaakt.
invalidToken
: Als een token is verlopen of een ongeldig exemplaarCall Agent
wordt verbroken met deze fout.connectionIssue
: Als er een probleem is met de client die verbinding maakt met Microsoft infrascture, wordt deconnectionIssue
fout na veel nieuwe pogingenCall Agent
weergegeven.
U kunt controleren of uw lokale Call Agent
verbinding heeft met de Microsoft-infrastructuur door de huidige waarde van connectionState
de eigenschap te controleren. Tijdens een actieve oproep kunt u naar de connectionStateChanged
gebeurtenis luisteren om te bepalen of Call Agent
de status Verbonden naar Verbroken is gewijzigd.
const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'
const connectionStateCallback = (args) => {
console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
// it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);
Samen implementeren-modus
De modus Together is een uitgebreide functie van de kern-API Call
. U moet eerst aanroepende functies importeren uit de Calling SDK:
import { Features} from "@azure/communication-calling";
Vervolgens kunt u het API-object Together Mode ophalen uit het aanroepexemplaren:
const togetherModeFeature = call.feature(Features.TogetherMode);
Gebeurtenissen ontvangen wanneer de stream Samen modus wordt gestart of bijgewerkt
U kunt zich abonneren op de gebeurtenis togetherModeStreamsUpdated
om meldingen te ontvangen wanneer de modus Samen wordt gestart of bijgewerkt. De gebeurtenis bevat informatie over het weergeven van de toegevoegde videostream.
// event : { added: TogetherModeVideoStream[]; removed: TogetherModeVideoStream[] }
togetherModeFeature.on('togetherModeStreamsUpdated', (event) => {
event.added.forEach(async stream => {
// stream can be rendered as a remote video stream
});
});
Stroom voor de modus Samenbrengen
U hebt toegang tot samenmodusstreams via de eigenschap togetherModeStream
.
const togetherModeStreams = togetherModeFeature.togetherModeStream;
Eigenschappen van stream samen in modus | Beschrijving |
---|---|
id |
Uniek nummer dat wordt gebruikt om de stream te identificeren. |
mediaStreamType |
Retourneert het stroomtype Samenmodus. De waarde van mediaStreamType is altijd video . |
isReceiving |
Retourneert een Booleaanse waarde die aangeeft of videopakketten worden ontvangen. |
size |
Retourneert de modus StreamSize Samen met informatie over de breedte en hoogte van de stroom in pixels. |
De modus Samen starten voor alle deelnemers
Microsoft 365-gebruikers met rolorganisator, medeorganisator of presentator kunnen de modus Samen starten voor iedereen in de vergadering. Wanneer de modus Samen starten, ontvangen alle abonnees van de togetherModeStreamsUpdated
gebeurtenis een melding waarmee deelnemers de modus Samen kunnen weergeven.
togetherModeFeature.start();
Modus Samen beëindigen
De modus Samen wordt automatisch beëindigd voor alle deelnemers als er gedurende één minuut geen videostream van een deelnemer wordt gedetecteerd. Er is geen API om de modus Samen te beëindigen.
Coördinaten van deelnemers ophalen in de modus Samen
De eigenschap togetherModeSeatingMap
biedt coördinaten voor afzonderlijke deelnemers in de stream. Ontwikkelaars kunnen deze coördinaten gebruiken om informatie van deelnemers over te leggen, zoals weergavenaam of visuele functies zoals spotlight, hand opgevoed en reacties op de stream.
// returns Map<string, TogetherModeSeatingPosition>
// where the key is the participant ID
// and value of type TogetherModeSeatingPosition is the position relative to the sceneSize
// TogetherModeSeatingPosition {
// top: number;
// left: number;
// width: number;
// height: number;
// }
const seatingMap = togetherModeFeature.togetherModeSeatingMap;
Grootte van scène beheren
De sceneSize
eigenschap specificeert de afmetingen (breedte en hoogte) van de HTML-container die de togetherMode
videostream bevat. De zitplaatsen van deelnemers worden berekend op basis van de afmetingen van de scènegrootte. Als er geen scènegrootte is opgegeven, wordt de berekening standaard ingesteld op een breedte van 1.280 pixels en een hoogte van 720 pixels.
const togetherModeContainerSize = { width: 500, height: 500 };
// To set the scene size
togetherModeFeature.sceneSize = togetherModeContainerSize;
// To get the scene size
console.log(`Current scene has the following size: ${JSON.stringify(togetherModeFeature.sceneSize )}`)
Gebeurtenissen ontvangen wanneer scène- of zitplaatsenupdates worden bijgewerkt
Notitie
Alleen Microsoft 365-gebruikers met rolorganisator, medeorganisator of presentator kunnen scènes of toewijzingen van deelnemers wijzigen in de modus Samen. Deze wijzigingen kunnen alleen worden aangebracht vanuit de Teams-client.
Als er sprake is van een wijziging in de scène of het wijzigen van de zitplaatsen, worden de togetherModeSceneUpdated
of togetherModeSeatingUpdated
gebeurtenissen respectievelijk gegenereerd, waardoor een bijgewerkte berekening van de positie van de deelnemers wordt geboden.
const seatUpdate = (participantSeatingMap) => {
participantSeatingMap.forEach((participantID, seatingCoordinates) => {
console.log(`User with ID: ${participantID} has new coordinates ${JSON.stringify(seatingCoordinates)} `)
})
}
togetherModeFeature.on('togetherModeSceneUpdated', seatUpdate);
togetherModeFeature.on('togetherModeSeatingUpdated', seatUpdate);
Probleemoplossing
Code | Subcode | Resultaatcategorie | Reden | Oplossing |
---|---|---|---|---|
403 | 46303 | ExpectedError | De rol van de deelnemer heeft niet de benodigde machtigingen om de togetherMode start-API aan te roepen. |
Alleen Microsoft 365-gebruikers met rolorganisator, mede-organisator of presentator kunnen de modus Samen starten. U kunt de rol van een gebruiker controleren via role de eigenschap voor het exemplaar van Call de klasse. |
403 | 46304 | ExpectedError | De modus Samen is gestart in een niet-ondersteund belscenario. | Zorg ervoor dat de modus Samen alleen wordt gestart in groepsgesprekken of vergaderscenario's. |
403 | 46306 | ExpectedError | Modus-API start die wordt aangeroepen door een Azure Communication Services-gebruiker. |
Alleen Microsoft 365-gebruikers met rolorganisator, mede-organisator of presentator kunnen de modus Samen starten. |