Tous les produits
Search
Centre de documentation

ApsaraVideo Live:API AliRtcEngine

Dernière mise à jour :Sep 12, 2026

Cette rubrique décrit les API du SDK ApsaraVideo Real-time Communication (ARTC) pour Windows.

Instructions

Contenu

API de base

API

Description

Create

Crée une instance AliRtcEngine (modèle singleton).

Destroy

Détruit l'instance AliRtcEngine.

QueryInterface

Récupère une instance d'une API de fonctionnalité.

SetH5CompatibleMode

Définit le mode de compatibilité H5.

GetH5CompatibleMode

Vérifie si le mode actuel est compatible avec H5.

SetEngineEventListener

Définit les callbacks de l'écouteur d'événements.

GetSDKVersion

Interroge le numéro de version actuel du SDK.

API liées au canal

API

Description

SetChannelProfile

Définit le profil du canal.

SetAudioProfile

Définit le profil audio.

IsAudioOnlyMode

Interroge pour savoir si le mode actuel est audio uniquement.

SetAudioOnlyMode

Définit le mode sur audio uniquement ou audio et vidéo.

[JoinChannel[1/3]](#6ec4ce3e5embd)

Rejoint un canal.

[JoinChannel[2/3]](#f4a9ec8aabk64)

Rejoint un canal.

[JoinChannel[3/3]](#vf8Vx)

Rejoint un canal.

LeaveChannel

Quitte un canal.

IsInCall

Vérifie si l'utilisateur se trouve dans un canal.

SetClientRole

Définit le rôle de l'utilisateur.

GetClientRole

Récupère le rôle de l'utilisateur.

[RefreshAuthInfo[1/2]](#fd1370c8b84kb)

Actualise les informations d'authentification.

[RefreshAuthInfo[2/2]](#0c27b3f410fgl)

Actualise les informations d'authentification.

API de publication et d'abonnement

API

Description

PublishLocalAudioStream

Définit s'il faut publier le flux audio local. Par défaut, le flux audio est publié.

IsLocalAudioStreamPublished

Interroge pour savoir si le flux audio local est en cours de publication.

SetDefaultSubscribeAllRemoteAudioStreams

Définit s'il faut s'abonner aux flux audio distants par défaut. Par défaut, tous les flux audio distants sont abonnés.

Appelez cette API avant de rejoindre un canal.

SubscribeRemoteAudioStream

Arrête ou reprend l'abonnement au flux audio d'un utilisateur distant spécifique.

SubscribeAllRemoteAudioStreams

Arrête ou reprend l'abonnement à tous les flux audio distants.

[PublishLocalVideoStream[1/2]](#6b40bac94anns)

Définit s'il faut publier le flux vidéo local.

[PublishLocalVideoStream[2/2]](#87df63c104nvw)

IsLocalVideoStreamPublished

Interroge pour savoir si le flux vidéo local est en cours de publication.

SetDefaultSubscribeAllRemoteVideoStreams

Définit s'il faut s'abonner aux flux vidéo distants par défaut. Par défaut, tous les flux vidéo distants sont abonnés.

Appelez cette API avant de rejoindre un canal.

SubscribeRemoteVideoStream

Arrête ou reprend l'abonnement au flux vidéo d'un utilisateur distant.

SubscribeAllRemoteVideoStreams

Arrête ou reprend l'abonnement à tous les flux vidéo distants.

[SubscribeRemoteMediaStream[1/2]](#9a61b12bb2g59)

Arrête ou reprend l'abonnement au flux multimédia d'un utilisateur distant spécifique.

Utilisez cette API lorsque les flux audio et vidéo existent et doivent être contrôlés.

[SubscribeRemoteMediaStream[2/2]](#HQuvY)

Arrête ou reprend l'abonnement au flux multimédia d'un utilisateur distant spécifique.

Utilisez cette API lorsque les flux audio et vidéo existent et doivent être contrôlés.

SubscribeRemoteDestChannelStream

Arrête ou reprend l'abonnement au flux multimédia d'un utilisateur distant spécifique entre canaux.

SetRemoteAudioVolume

Ajuste le volume de lecture d'un utilisateur distant spécifié sur le client local.

API de gestion des périphériques audio

API

Description

MuteLocalMic

Définit s'il faut arrêter la publication de l'audio local.

MuteRemoteAudio

Définit s'il faut arrêter la lecture du flux audio distant.

MuteAllRemoteAudio

Arrête ou reprend la lecture de tout l'audio distant.

[StartAudioCapture[1/2]](#55c3de4858tsh)

Active la capture audio.

[StartAudioCapture[2/2]](#ab616abc8etr6)

Active la capture audio.

StopAudioCapture

Désactive la capture audio.

EnableAudioVolumeIndication

Active la fonction de détection du volume.

StartAudioPlayer

Active le périphérique de lecture audio.

StopAudioPlayer

Désactive la lecture audio.

SetPlayoutVolume

Définit le volume de lecture.

SetRecordingVolume

Définit le volume d'enregistrement.

PlayAudioFileTest

Lit un fichier audio.

StopAudioFileTest

Arrête la lecture du fichier audio.

StartAudioCaptureTest

Démarre un test de capture audio avant un appel.

StopAudioCaptureTest

Arrête le test de capture audio.

EnableSystemAudioRecording

Active ou désactive la capture et la publication de l'audio système.

IsSystemAudioRecording

Interroge pour savoir si la capture et la publication de l'audio système sont activées.

SetSystemAudioRecordingVolume

Définit le volume pour la capture et la publication de l'audio système.

GetSystemAudioRecordingVolume

Récupère le volume actuel pour la capture et la publication de l'audio système.

SetSystemAudioPlayoutVolume

Définit le volume de lecture de l'audio système.

GetSystemAudioPlayoutVolume

Récupère le volume de lecture actuel de l'audio système.

GetAudioCaptureList

Récupère la liste des périphériques de capture audio.

GetCurrentAudioCaptureName

Récupère le nom du périphérique de capture audio actuel.

GetCurrentAudioCaptureID

Récupère l'ID du périphérique de capture audio actuel.

SetCurrentAudioCaptureName

Définit le périphérique de capture audio portant le nom spécifié comme périphérique actuel.

SetCurrentAudioCaptureID

Définit l'ID du périphérique de capture audio actuel.

GetAudioPlayerList

Récupère la liste des périphériques de lecture audio actuels.

GetSystemRecordAudioPlayerList

Récupère la liste des périphériques de lecture audio système actuels.

GetCurrentAudioPlayerName

Récupère le nom du périphérique de lecture audio actuel.

GetCurrentAudioPlayerID

Récupère l'ID du périphérique de lecture audio actuel.

SetCurrentAudioPlayerName

Définit le périphérique portant le nom spécifié comme périphérique de lecture actuel.

SetCurrentAudioPlayerID

Définit le périphérique portant l'ID spécifié comme périphérique de lecture actuel.

SetRecordingDeviceVolume

Définit le volume du périphérique de capture audio.

GetRecordingDeviceVolume

Récupère le volume du périphérique de capture audio.

SetPlaybackDeviceVolume

Définit le volume du périphérique de lecture audio.

GetPlaybackDeviceVolume

Récupère le volume du périphérique de lecture audio.

SetRecordingDeviceMute

Définit le statut de mise en sourdine du périphérique de capture audio.

GetRecordingDeviceMute

Récupère le statut de mise en sourdine du périphérique de capture audio.

SetPlaybackDeviceMute

Définit le statut de mise en sourdine du périphérique de lecture audio.

GetPlaybackDeviceMute

Récupère le statut de mise en sourdine du périphérique de lecture audio.

Modification de la voix et réverbération

API

Description

SetAudioEffectVoiceChangerMode

Définit le mode d'effet de modification de la voix.

SetAudioEffectPitchValue

Définit le paramètre de décalage de hauteur.

SetAudioEffectReverbMode

Définit le mode d'effet de réverbération.

SetAudioEffectReverbParamType

Définit le type d'effet de réverbération et les paramètres spécifiques.

setAudioEffectBeautifyMode

Définit le mode d'effet prédéfini d'embellissement de la voix.

setAudioEffectEqualizationParam

Définit les paramètres de l'égaliseur audio (EQ) pour ajuster le gain d'une bande de fréquences spécifiée.

Entrée audio personnalisée

API

Description

AddExternalAudioStream

Ajoute un flux audio externe.

PushExternalAudioStreamRawData

Injecte les données d'un flux audio externe.

SetExternalAudioStreamPublishVolume

Définit le volume de publication.

GetExternalAudioStreamPublishVolume

Récupère le volume de publication.

SetExternalAudioStreamPlayoutVolume

Définit le volume de lecture du flux audio externe.

GetExternalAudioStreamPlayoutVolume

Récupère le volume de lecture du flux audio externe.

RemoveExternalAudioStream

Supprime un flux audio externe.

Accompagnement audio

API

Description

GetAudioFileInfo

Récupère les informations du fichier audio.

StartAudioAccompany

Démarre le mixage audio pour l'accompagnement.

StopAudioAccompany

Arrête le mixage audio pour l'accompagnement.

SetAudioAccompanyVolume

Définit le volume de l'accompagnement.

SetAudioAccompanyPublishVolume

Définit le volume de publication pour l'accompagnement.

GetAudioAccompanyPublishVolume

Récupère le volume de publication pour l'accompagnement.

SetAudioAccompanyPlayoutVolume

Définit le volume de lecture local pour l'accompagnement.

GetAudioAccompanyPlayoutVolume

Récupère le volume de lecture local pour l'accompagnement.

PauseAudioAccompany

Met en pause le mixage audio pour l'accompagnement.

ResumeAudioAccompany

Reprend le mixage audio pour l'accompagnement.

GetAudioAccompanyDuration

Récupère la durée du fichier d'accompagnement en millisecondes.

GetAudioAccompanyCurrentPosition

Récupère la progression de la lecture du fichier d'accompagnement en millisecondes.

SetAudioAccompanyPosition

Définit la position de lecture du fichier d'accompagnement.

Fichiers d'effets sonores

API

Description

PreloadAudioEffect

Précharge un fichier d'effet sonore.

UnloadAudioEffect

Supprime un fichier d'effet sonore préchargé.

PlayAudioEffect

Démarre la lecture d'un effet sonore.

StopAudioEffect

Arrête la lecture d'un effet sonore.

StopAllAudioEffects

Arrête la lecture de tous les effets sonores.

PauseAudioEffect

Met en pause un effet sonore.

PauseAllAudioEffects

Met en pause tous les effets sonores.

ResumeAudioEffect

Reprend la lecture d'un fichier d'effet sonore spécifique.

ResumeAllAudioEffects

Reprend la lecture de tous les fichiers d'effets sonores.

SetAudioEffectPublishVolume

Définit le volume de mixage pour la publication d'un effet sonore.

GetAudioEffectPublishVolume

Récupère le volume de mixage pour la publication d'un effet sonore.

SetAllAudioEffectsPublishVolume

Définit le volume de mixage pour la publication de tous les effets sonores.

SetAudioEffectPlayoutVolume

Définit le volume de lecture local pour un effet sonore.

GetAudioEffectPlayoutVolume

Récupère le volume de lecture local pour un effet sonore.

SetAllAudioEffectsPlayoutVolume

Définit le volume de lecture local pour tous les effets sonores.

API de gestion des périphériques vidéo

API

Description

SetLocalViewConfig

Définit la fenêtre de rendu et les paramètres de dessin pour l'aperçu local.

SetCameraCapturerConfiguration

Définit les préférences de capture de la caméra.

EnableLocalVideo

Désactive ou réactive la capture vidéo locale.

MuteLocalCamera

Définit s'il faut arrêter la publication du flux vidéo local.

SetRemoteViewConfig

Définit la fenêtre de rendu et les paramètres de dessin pour la vidéo distante.

IsCameraOn

Vérifie si la caméra est activée.

SetVideoEncoderConfiguration

Définit les propriétés d'encodage vidéo.

SetVideoDecoderConfiguration

Définit les propriétés de décodage vidéo.

StartPreview

Démarre l'aperçu local.

StopPreview

Arrête l'aperçu local.

setVideoMirrorMode

Définit les capacités de mise en miroir pour l'aperçu et la publication.

SetCapturePipelineScaleMode

Définit le moment du redimensionnement lors de la capture. Détermine si les données vidéo sont redimensionnées immédiatement lors de la capture ou pendant l'encodage.

GetCameraList

Récupère la liste des caméras disponibles.

GetCurrentCameraName

Récupère le nom de la caméra actuellement utilisée.

GetCurrentCameraID

Récupère l'ID de la caméra actuellement utilisée.

SetCurrentCameraName

Définit la caméra portant le nom spécifié comme caméra actuelle.

SetCurrentCameraID

Définit la caméra portant l'ID spécifié comme caméra actuelle.

GetCurrentCameraSupportedResolutionList

Récupère la liste des résolutions prises en charge par la caméra actuelle.

Configurer les rappels de données vidéo

API

Description

RegisterVideoSampleObserver

Inscrit un objet de sortie de données vidéo.

UnRegisterVideoSampleObserver

Désinscrit un objet de sortie de données vidéo.

SnapshotVideo

Fonctionnalité de capture d'instantané vidéo.

Configurer les rappels de données audio

API

Description

RegisterAudioFrameObserver

Inscrit un rappel de données audio.

UnRegisterAudioFrameObserver

Se désabonne de la sortie des données audio.

EnableAudioFrameObserver

Définit les paramètres du rappel audio.

Entrée vidéo personnalisée

API

Description

SetExternalVideoSource

Active une source d'entrée vidéo externe.

PushExternalVideoFrame

Injecte des données vidéo.

API de partage d'écran

API

Description

StartScreenShareByDesktopId

Démarre le partage du flux d'écran correspondant à l'ID de bureau spécifié.

StartScreenShareByScreenRegion

Démarre le partage du flux vidéo d'une région spécifiée de l'écran.

StartScreenShareByWindowId

Partage et publie le flux vidéo d'une fenêtre spécifiée par son ID.

StopScreenShare

Arrête le partage d'écran.

ResumeScreenShare

Reprend le partage d'écran.

PauseScreenShare

Met en pause le partage d'écran.

IsScreenSharePublished

Interroge si le partage d'écran est configuré pour être publié.

UpdateScreenShareConfig

Met à jour la configuration du partage d'écran.

CheckWindowSourceVaild

Vérifie si la fenêtre correspondant à l'ID de fenêtre partagée est valide.

GetScreenShareConfig

Renvoie les informations actuelles de configuration du partage d'écran.

GetScreenShareSourceInfo

Récupère une liste d'objets basée sur la source spécifiée.

GetCurrentScreenShareSourceId

Récupère l'ID de la source actuelle de partage d'écran.

GetCurrentScreenShareSourceType

Récupère une liste d'objets basée sur la source spécifiée.

GetDesktopRegion

Récupère la région de partage d'écran basée sur l'ID de source et le titre de source spécifiés.

SetScreenShareEncoderConfiguration

Définit les propriétés d'encodage vidéo pour le flux d'écran.

API de diffusion en direct par relais

API

Description

StartPublishLiveStream

Démarre la diffusion en direct par relais.

UpdatePublishLiveStream

Met à jour les paramètres de diffusion en direct par relais.

StopPublishLiveStream

Arrête la diffusion en direct par relais.

GetPublishLiveStreamState

Récupère l'état de la diffusion en direct par relais.

StartLastmileDetect

Démarre une sonde de qualité réseau avant l'appel.

StopLastmileDetect

Arrête la sonde de qualité réseau avant l'appel.

API de détection de la qualité du réseau

API

Description

StartLastmileDetect

Démarre une sonde de qualité réseau avant l'appel.

StopLastmileDetect

Arrête la sonde de qualité réseau avant l'appel.

SEI

API

Description

SendMediaExtensionMsg

Envoie des informations d'extension multimédia, implémentées en interne via SEI.

SendMediaExtensionMsgEx

Envoie des informations d'extension multimédia (étendues), implémentées en interne via SEI.

Autres API

API

Description

SetParameter

Définit des paramètres personnalisés.

GetParameter

Récupère les paramètres personnalisés.

SetLogDirPath

Définit le chemin d'enregistrement des fichiers journaux du SDK.

SetLogLevel

Définit le niveau de journalisation.

GetNetworkTime

Récupère l'heure de la chronologie.

SendDataChannelMessage

Envoie un message sur le canal de données.

Rappels

AliEngineEventListener

API

Description

OnConnectionStatusChange

Rappel relatif à l'état de la connexion réseau. Les clients doivent prêter attention à ce rappel.

OnLocalDeviceException

Rappel relatif aux exceptions des appareils locaux. Les clients doivent prêter attention à ce rappel.

OnAuthInfoWillExpire

Notification indiquant que les informations d'authentification de l'utilisateur sont sur le point d'expirer. L'authentification expirera 30 secondes après la réception de cette notification. Les clients doivent prêter attention à ce rappel.

OnAuthInfoExpired

Le serveur signale l'expiration des informations lorsque l'utilisateur appelle une API nécessitant une authentification.

OnJoinChannelResult

Rappel relatif au résultat de la jonction à un canal.

OnLeaveChannelResult

Rappel relatif au résultat de la sortie d'un canal.

OnRemoteUserOffLineNotify

Notification indiquant qu'un utilisateur distant est hors ligne.

OnRemoteUserOnLineNotify

Notification indiquant qu'un utilisateur distant est en ligne.

OnRemoteTrackAvailableNotify

Notification relative aux informations de publication de flux distants.

OnBye

Message indiquant que l'utilisateur a été expulsé du serveur ou que le canal est terminé.

OnAudioPublishStateChanged

Notification de changement d'état de la publication audio.

OnAudioSubscribeStateChanged

Notification de changement d'état de l'abonnement audio.

OnUserAudioMuted

Notification indiquant qu'un utilisateur distant est en sourdine.

OnUserAudioInterruptedBegin

Notification indiquant le début d'une interruption du dispositif audio.

OnUserAudioInterruptedEnded

Notification indiquant la fin d'une interruption du dispositif audio.

OnVideoPublishStateChanged

Rappel relatif au changement d'état de la publication vidéo.

OnVideoSubscribeStateChanged

Rappel relatif au changement d'état de l'abonnement au flux de la caméra.

OnUserVideoMuted

Notification indiquant que l'utilisateur distant envoie des images vidéo noires.

OnUserVideoEnabled

Notification indiquant que l'utilisateur distant a désactivé la capture du flux de la caméra.

OnUserWillResignActive

L'application de l'utilisateur distant est passée en arrière-plan.

OnUserWillBecomeActive

L'application de l'utilisateur distant est revenue au premier plan.

OnAudioEffectFinished

Rappel déclenché à la fin de la lecture d'un effet sonore local.

OnAudioVolumeCallback

Le volume audio, l'état vocal et l'UID de l'audio abonné.

OnActiveSpeaker

Détection d'activité vocale. Rappel déclenché lorsqu'un utilisateur actif est détecté.

OnPublishLiveStreamStateChanged

Rappel relatif au changement d'état de la publication du flux par relais.

OnPublishTaskStateChanged

Rappel relatif au changement d'état de la tâche par relais.

OnNetworkQualityChanged

Rappel relatif au changement de qualité du réseau.

OnLastmileDetectResultWithQuality

Rappel relatif à la sonde de qualité réseau avant l'appel. Ce rappel est fourni environ 3 secondes après le démarrage de la sonde.

OnLastmileDetectResultWithBandWidth

Rappel relatif aux résultats de la sonde de qualité réseau avant l'appel. Ce rappel est fourni environ 30 secondes après le démarrage de la sonde.

OnOccurError

<!--@p {"id":"392f2969693aq"}--br>Si une erreur se produit dans le moteur, ce rappel en informe l'application.

OnFirstAudioPacketSend

Rappel relatif à l'envoi du premier paquet audio.

OnFirstAudioPacketReceived

Rappel relatif à la réception du premier paquet audio.

OnFirstVideoPacketSend

Rappel relatif à l'envoi du premier paquet vidéo.

OnFirstVideoPacketReceived

Rappel relatif à la réception du premier paquet vidéo.

OnFirstRemoteAudioDecoded

Rappel relatif à la première image audio distante décodée.

OnFirstRemoteVideoFrameDrawn

Ce message est déclenché lors de l'affichage de la première image vidéo d'un utilisateur distant.

OnFirstLocalVideoFrameDrawn

Ce message est déclenché lors de l'affichage de la première image vidéo dans l'aperçu.

OnTestAudioVolumeCallback

Rappel de volume pour le test de capture audio avant l'appel.

OnAudioAccompanyStateChanged

Rappel relatif à l'état de lecture de l'accompagnement local.

OnAudioFileInfo

Rappel relatif aux informations du fichier audio.

OnRemoteAudioAccompanyStarted

Rappel déclenché lorsque la lecture de l'accompagnement d'un utilisateur distant commence.

OnRemoteAudioAccompanyFinished

Rappel déclenché lorsque la lecture de l'accompagnement d'un utilisateur distant se termine.

OnStats

Rappel de données en temps réel (déclenché toutes les 2 secondes).

OnLocalVideoStats

Statistiques vidéo locales (déclenchées toutes les 2 secondes).

OnRemoteVideoStats

Statistiques vidéo distantes (déclenchées toutes les 2 secondes).

OnLocalAudioStats

Statistiques audio locales (déclenchées toutes les 2 secondes).

OnRemoteAudioStats

Statistiques audio distantes (déclenchées toutes les 2 secondes).

OnMediaExtensionMsgReceived

Rappel relatif à la réception des informations d'extension multimédia.

OnSnapshotComplete

Rappel relatif au résultat de la capture d'écran.

OnLocalAudioStateChange

Rappel relatif à l'état du dispositif audio local.

onLocalVideoStateChanged

Rappel relatif à l'état du dispositif vidéo local.

OnRemoteUserSubscribedDataChannel

Rappel indiquant que vous pouvez commencer à envoyer des messages sur le canal de données.

OnDataChannelMessage

Rappel relatif aux messages du canal de données.

IAudioFrameObserver

API

Description

OnCapturedAudioFrame

Rappel relatif aux données brutes capturées.

OnProcessCapturedAudioFrame

Rappel relatif aux données après traitement 3A.

OnPublishAudioFrame

Rappel relatif aux données du flux publié.

OnPlaybackAudioFrame

Rappel relatif aux données de lecture.

OnRemoteUserAudioFrame

Rappel relatif aux données du flux distant.

IVideoFrameObserver

API

Description

OnCaptureVideoSample

Rappel relatif aux données vidéo capturées localement.

OnPreEncodeVideoSample

Rappel relatif aux données vidéo locales avant l'encodage.

OnRemoteVideoSample

Rappel relatif aux données vidéo distantes.

GetVideoAlignment

Alignement de la width de sortie vidéo.

GetObservedFramePosition

Contenu de sortie des données vidéo.

AliEngineDestroyCompletionCallback

API

Description

onDestroyCompletion

Rappel déclenché lorsque la destruction est terminée.

Détails de l'API

Create

Crée une instance AliRtcEngine.

static AliEngine *Create(const char *extras);

Quand appeler

Appelez cette méthode pour créer une instance AliRtcEngine avant d'appeler toute autre API du SDK ARTC.

Limites

Le SDK ne prend en charge qu'une seule instance AliRtcEngine par application.

Descriptions des métriques

Nom

Type

Description

extras

const char *

Reçoit les paramètres pour les déploiements progressifs (grayscale releases). Utilisez les configurations JSON pour définir des fonctionnalités SDK spécifiques. Ce paramètre peut être une chaîne vide.

Valeur de retour

Renvoie un objet singleton de la classe AliEngine.

Destroy

Détruit l'instance AliRtcEngine.

static void Destroy(AliEngineDestroyCompletionCallback *callback = nullptr);

Cette méthode détruit l'objet singleton AliRtcEngine et libère toutes ses ressources internes. Après l'appel de cette méthode, vous ne pouvez plus utiliser les autres méthodes AliRtcEngine ni aucun rappel. Pour les utiliser à nouveau, vous devez appeler Create afin de créer une nouvelle instance.

Remarque

Cette méthode est un appel asynchrone. Elle fournit un rappel qui vous permet de suivre l'achèvement de l'opération de destruction. Vous ne pouvez créer une nouvelle instance qu'après avoir reçu le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#TUn2z" id="14c93d2e8bamj">onDestroyCompletion</a>, qui indique que l'opération de destruction est terminée.

Quand appeler

Appelez cette méthode pour libérer l'instance après avoir fini d'utiliser Real-Time Communication.

Limites

Pour éviter les interblocages (deadlocks), n'appelez pas cette méthode dans les rappels du SDK.

Paramètres

Paramètre

Type

Description

callback

AliEngineDestroyCompletionCallback

Le rappel déclenché lorsque l'opération de destruction est terminée.

QueryInterface

Récupère une instance d'interface de fonctionnalité.

virtual int QueryInterface(AliEngineInterfaceIdType iid, void** pInterface) = 0;

Cette méthode récupère une instance d'une interface de fonctionnalité spécifique. Lorsque vous développez des applications pour Real-Time Communication sur la plateforme Windows, de nombreuses fonctionnalités avancées sont fournies via des classes d'interface correspondantes, telles que la gestion des périphériques audio (AliEngineInterfaceAudioDeviceManager), la gestion des périphériques vidéo (AliEngineInterfaceVideoDeviceManager) et le moteur multimédia (AliEngineInterfaceMediaEngine). Avant d'appeler les méthodes associées, vous devez utiliser la méthode QueryInterface pour obtenir des instances de ces interfaces.

Remarque

Après avoir fini d'utiliser une instance d'interface, appelez la méthode Release de l'interface correspondante pour libérer les ressources et éviter les fuites de mémoire.

Paramètres

Nom

Type

Description

iid

AliEngineInterfaceIdType

Le type d'interface de fonctionnalité. Il indique au SDK quel type d'instance d'interface récupérer.

  • AliEngineInterfaceAudioDeviceManager : Si l'appel réussit, pInterface renvoie un objet IAliEngineAudioDeviceManager.

  • AliEngineInterfaceVideoDeviceManager : Si l'appel réussit, pInterface renvoie un objet IAliEngineVideoDeviceManager.

  • AliEngineInterfaceMediaEngine : Si l'appel réussit, pInterface renvoie un objet IAliEngineMediaEngine.

pInterface

void**

Renvoie une instance du type d'interface spécifié. Exemple :

AliEngineInterfaceMediaEngine* mediaEngine = nullptr;

Passez (void**)&mediaEngine.

Valeur de retour

  • 0 : L'appel a réussi.

  • <0 : L'appel a échoué.

SetH5CompatibleMode

Active ou désactive le mode de compatibilité H5.

static void SetH5CompatibleMode(bool comp);

Paramètres

Nom

Type

Description

comp

bool

  • true : Active la compatibilité H5.

  • false : Désactive la compatibilité H5. La valeur par défaut est false.

Remarque

La version actuelle ne prend pas en charge la modification du mode de compatibilité H5 après la création d'une instance AliRtcEngine. Vous devez appeler cette méthode avant de créer l'instance.

GetH5CompatibleMode

Vérifie si le mode de compatibilité H5 est activé.

static bool GetH5CompatibleMode();

Valeur de retour

true : La compatibilité H5 est activée. false : La compatibilité H5 est désactivée.

SetEngineEventListener

Définit les rappels de l'écouteur d'événements.

virtual int SetEngineEventListener(AliEngineEventListener *listener) = 0;

Cette méthode définit un écouteur de rappel pour le SDK. En configurant cet écouteur, vous pouvez recevoir divers événements de notification du moteur, tels que l'entrée ou la sortie d'utilisateurs d'un canal, les changements d'état du réseau et l'état des flux audio et vidéo.

Vous devez implémenter la classe AliEngineEventListener pour personnaliser les méthodes d'événement que vous souhaitez écouter. Par défaut, toutes les méthodes ont des implémentations vides, il n'est donc pas nécessaire de toutes les implémenter. Vous pouvez implémenter uniquement les méthodes d'événement dont vous avez besoin.

Remarque
  • Tous les rappels sont exécutés dans des threads internes du SDK. N'effectuez pas d'opérations d'interface utilisateur dans ces rappels. Si des opérations d'interface utilisateur sont nécessaires, exécutez-les sur le thread principal. N'appelez pas cette méthode au sein d'un rappel.

  • N'effectuez pas d'opérations longues dans les rappels, comme l'appel de la méthode Destroy d'AliEngine. Cela pourrait provoquer un blocage inutile et affecter les performances du SDK.

Rappels associés

Si une exception se produit lors d'une opération, le SDK tente d'abord de récupérer automatiquement grâce à son mécanisme interne de nouvelle tentative. Pour les erreurs qui ne peuvent pas être résolues automatiquement, le SDK notifie votre application via des interfaces de rappel prédéfinies. Voici les principaux rappels pour les problèmes que le SDK ne peut pas gérer et qui nécessitent que votre application les écoute et y réponde :

Cause de l'exception

Rappel et paramètres

Solution

Description

Échec de l'authentification

Le paramètre result dans le rappel OnJoinChannelResult renvoie AliRtcErrJoinBadToken

Si cette erreur se produit, vérifiez si le jeton (token) est correct.

Lorsqu'un utilisateur appelle une API, si l'authentification échoue, le système renvoie un message d'erreur d'échec d'authentification dans le rappel de l'API.

Anomalie de connectivité réseau

Le rappel OnConnectionStatusChange renvoie AliRtcConnectionStatusFailed.

Si cette exception se produit, l'application doit rejoindre à nouveau le canal.

Le SDK peut récupérer automatiquement les déconnexions réseau pendant une certaine période. Toutefois, si la durée de déconnexion dépasse le seuil prédéfini, un délai d'expiration est déclenché et la connexion est perdue. Dans ce cas, l'application doit vérifier l'état du réseau et guider l'utilisateur pour qu'il rejoigne à nouveau le canal.

Anomalie du dispositif local

OnLocalDeviceException

Si cette exception se produit, vérifiez si les autorisations et le matériel du dispositif sont normaux.

Le service RTC prend en charge la détection des dispositifs et le diagnostic des exceptions. Lorsqu'une exception de dispositif local se produit, le service RTC en informe le client via un rappel. Si le SDK ne peut pas résoudre le problème, l'application doit intervenir pour vérifier si le dispositif fonctionne correctement.

Déconnexion forcée

OnBye

  • AliRtcOnByeUserReplaced : Si cette exception se produit, vérifiez si les ID utilisateur sont identiques.

  • AliRtcOnByeBeKickedOut : Si cette exception se produit, cela signifie que l'utilisateur a été déconnecté de force par le service. L'utilisateur doit rejoindre à nouveau le canal.

  • AliRtcOnByeChannelTerminated : Si cette exception se produit, cela signifie que le canal a été détruit. L'utilisateur doit rejoindre à nouveau le canal.

Le service RTC propose une fonctionnalité permettant aux administrateurs de retirer activement des participants.

Expiration imminente de l'authentification

OnWillAuthInfoExpire

Si cette exception se produit, obtenez les dernières informations d'authentification, puis appelez refreshAuthInfo pour les actualiser.

Les erreurs d'expiration de l'authentification se produisent dans deux situations : lorsqu'un utilisateur appelle une API ou pendant l'exécution du programme. Par conséquent, le retour d'erreur est envoyé via un rappel d'API ou un rappel d'erreur distinct.

Expiration de l'authentification

OnAuthInfoExpired

Si cette exception se produit, l'application doit rejoindre à nouveau le canal.

Les erreurs d'expiration de l'authentification se produisent dans deux situations : lorsqu'un utilisateur appelle une API ou pendant l'exécution du programme. Par conséquent, le retour d'erreur est envoyé via un rappel d'API ou un rappel d'erreur distinct.

Paramètres

Nom

Type

Description

listener

AliEngineEventListener*

L'écouteur d'événements du moteur. Vous devez implémenter la classe AliEngineEventListener et remplacer les rappels d'événements que vous souhaitez écouter. Si vous définissez ce paramètre sur nullptr, tous les écouteurs d'événements sont annulés.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Cela peut être dû à un paramètre listener invalide ou à une initialisation incorrecte du SDK.

GetSDKVersion

Interroge la version actuelle du SDK.

static const char *GetSDKVersion();

Valeur de retour

Le numéro de version actuel du SDK au format chaîne. Exemple : "2.5.0.x".

SetChannelProfile

Définit le profil du canal.

virtual int SetChannelProfile(const AliEngineChannelProfile channelProfile) = 0;

Cette méthode définit le profil du canal. Elle propose actuellement des profils pour les scénarios d'appel vidéo et les scénarios de diffusion interactive :

  • Profil d'appel vidéo : Tous les utilisateurs ont le rôle streamer et peuvent publier et s'abonner à des flux.

  • Mode de diffusion interactive : Vous devez appeler la méthode <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="4e50f781a01e1">SetClientRole</a> pour définir le rôle de l'utilisateur. Définissez le rôle des utilisateurs qui ingèrent des flux dans le canal sur streamer (AliRTCSdkInteractive). Si un utilisateur a seulement besoin de tirer des flux et n'ingère pas de flux, définissez son rôle sur viewer (AliRTCSdkLive). Ce mode est recommandé pour les scénarios RTC.

Remarque
  • Nous vous recommandons d'utiliser le profil de diffusion interactive pour tous les scénarios RTC. Pour ce faire, appelez cette méthode et définissez le profil sur AliEngineInteractiveLive.

  • Les utilisateurs d'un même canal doivent utiliser le même profil de canal.

Quand appeler

Vous ne pouvez appeler cette méthode qu'avant de rejoindre un canal. Vous ne pouvez pas la réinitialiser lorsque vous êtes dans le canal. Vous pouvez la réinitialiser après avoir quitté le canal.

Paramètres

Nom

Type

Description

profile

AliEngineChannelProfile

Le profil du canal. Pour les scénarios RTC, nous vous recommandons de définir ce paramètre sur AliEngineInteractiveLive, qui correspond au profil de diffusion interactive.

Valeur de retour

  • 0 : L'appel de la méthode a réussi.

  • Autres valeurs : L'appel de la méthode a échoué.

    • -1 : Le SDK n'est pas initialisé ou a été détruit.

SetAudioProfile

Définit le profil audio.

virtual int SetAudioProfile(int audioProfile, int audioScene) = 0;

Cette méthode définit le profil d'encodage audio et le scénario audio. Pour plus d'informations, consultez Opérations et configurations audio courantes. Le SDK ARTC utilise par défaut le mode haute qualité (AliEngineHighQualityMode) et le mode scénario musical (AliEngineSceneMusicMode). Si les paramètres par défaut ne répondent pas à vos besoins, vous pouvez appeler cette méthode pour les configurer.

Quand appeler

Vous ne pouvez appeler cette méthode qu'avant de rejoindre un canal. Vous ne pouvez pas la réinitialiser après avoir rejoint le canal. Vous pouvez la réinitialiser après avoir quitté le canal.

Paramètres

Nom

Type

Description

audio_profile

AliEngineAudioProfile

Le paramètre de profil de collecte ou d'encodage audio. Nous vous recommandons d'utiliser le mode haute qualité (AliRtcEngineHighQualityMode).

Remarque

Pour interoperer avec le WEB, définissez la fréquence d'échantillonnage sur 48 kHz.

  • AliEngineLowQualityMode : Mode audio basse qualité. La fréquence d'échantillonnage par défaut est de 8 000 Hz, mono, et le débit binaire maximal est de 12 kbps.

  • AliEngineBasicQualityMode : Mode audio qualité standard. La fréquence d'échantillonnage par défaut est de 16 000 Hz, mono, et le débit binaire maximal est de 24 kbps.

  • AliEngineHighQualityMode : La fréquence d'échantillonnage par défaut est de 48 000 Hz, mono, et le débit binaire maximal est de 64 kbps.

  • AliEngineStereoHighQualityMode : Mode audio stéréo haute qualité. La fréquence d'échantillonnage par défaut est de 48 000 Hz, stéréo, et le débit binaire maximal est de 80 kbps.

  • AliEngineSuperHighQualityMode : Mode audio super haute qualité. La fréquence d'échantillonnage par défaut est de 48 000 Hz, mono, et le débit binaire maximal est de 96 kbps.

  • AliEngineStereoSuperHighQualityMode : Mode audio stéréo super haute qualité. La fréquence d'échantillonnage par défaut est de 48 000 Hz, stéréo, et le débit binaire maximal est de 128 kbps.

audio_scene

AliEngineAudioScenario

Le paramètre de scénario audio. Il comprend principalement :

  • AliEngineSceneMusicMode (recommandé) : Scénario musical. Utilise des algorithmes 3A logiciels et collecte l'audio depuis le téléphone mobile pour une meilleure qualité audio.

  • AliEngineSceneDefaultMode : Utilise des algorithmes 3A matériels. Peut collecter l'audio depuis des appareils Bluetooth.

Remarque

Pour le SDK ARTC v6.21 et versions ultérieures, veuillez ne pas le définir comme un scénario de salle de discussion (AliRtcSceneChatroomMode).

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

IsAudioOnlyMode

Vérifie si le mode actuel est audio uniquement.

virtual bool IsAudioOnlyMode() = 0;

Valeur de retour

true : Le mode actuel est audio uniquement. false : Le mode actuel est audio et vidéo.

SetAudioOnlyMode

Définit le mode sur audio uniquement ou audio et vidéo.

virtual int SetAudioOnlyMode(bool audioOnly) = 0;

Paramètres

Nom

Type

Description

audioOnly

bool

  • true : Seuls les flux audio sont publiés et auxquels on s'abonne.

  • false : L'audio et la vidéo sont pris en charge. La valeur par défaut est false.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

JoinChannel[1/3]

Rejoint un canal.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const char *userName) = 0;

Cette méthode permet de rejoindre un canal. Dans ARTC, les utilisateurs sont organisés par canaux. Les utilisateurs doivent rejoindre un canal pour publier ou s'abonner à des flux audio et vidéo. Cette méthode, JoinChannel[2/3] et JoinChannel[3/3] peuvent toutes être utilisées pour rejoindre un canal. Elles diffèrent par leurs méthodes d'authentification et les informations utilisateur qu'elles transmettent, comme suit :

  • Cette méthode sert à rejoindre un canal avec un seul paramètre. Vous devez transmettre un jeton généré pour une jointure à paramètre unique en utilisant Authentification basée sur un jeton. Nous vous recommandons d'utiliser cette méthode pour rejoindre un canal dans les scénarios RTC.

  • JoinChannel[2/3] sert à rejoindre un canal avec plusieurs paramètres. Vous devez transmettre un jeton multiparamètre généré en utilisant Authentification basée sur un jeton ainsi que les informations utilisateur qui ont servi à générer le jeton.

  • JoinChannel[3/3] sert aux scénarios d'interaction en temps réel avec l'IA. Vous devez transmettre un jeton à paramètre unique et définir la propriété utilisateur capabilityProfile en fonction du scénario.

Remarque

Par défaut, lorsque vous rejoignez un canal, vous vous abonnez aux flux audio et vidéo de tous les autres utilisateurs du canal et diffusez vos propres flux audio et vidéo vers les utilisateurs distants. Si vous souhaitez annuler cet abonnement par défaut, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="00e50070ba5ck">SetDefaultSubscribeAllRemoteAudioStreams</a> et <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="0b0bcff091gtk">SetDefaultSubscribeAllRemoteVideoStreams</a> avant d'appeler cette API pour désactiver l'abonnement aux flux audio ou vidéo.

Quand appeler

Appelez cette méthode après avoir créé le moteur.

Limites

  • Après avoir rejoint un canal avec succès, pour rejoindre un autre canal, vous devez d'abord appeler LeaveChannel pour quitter le canal actuel. Vous ne pouvez appeler la jointure à un autre canal qu'après avoir reçu le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="b2522e57e4vom">OnLeaveChannelResult</a>.

  • Cette méthode ne prend en charge la jointure qu'à un seul canal à la fois.

  • Les applications ayant des ID d'application différents ne peuvent pas communiquer entre elles.

  • N'appelez pas cette méthode lors d'une nouvelle tentative après un échec de jointure à un canal.

Rappels associés

Un appel réussi à cette méthode déclenche les rappels suivants :

  • Le résultat de la jointure du client local à un canal est renvoyé via le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="cad6eb9b1bwx7">OnJoinChannelResult</a> de AliRtcEngineEventListener.

  • Après avoir rejoint le canal avec succès, le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fab4a94264m28">OnRemoteUserOnLineNotify</a> est déclenché sur les clients distants.

Paramètres

Paramètre

Type

Description

token

const char *

Les informations d'authentification pour la jointure à paramètre unique.

channelId

const char *

Le canal à rejoindre. Cela doit correspondre à la valeur utilisée pour générer le jeton.

userId

const char *

L'ID utilisateur pour la jointure. Cela doit correspondre à la valeur utilisée pour générer le jeton.

userName

const char *

Le nom d'affichage de l'utilisateur (et non l'ID utilisateur).

Valeur de retour

0 : L'appel de la méthode a réussi. Une valeur non nulle : L'appel de la méthode a échoué.

JoinChannel[2/3]

Rejoint un canal.

virtual int JoinChannel(const AliEngineAuthInfo &authInfo,
                                 const char *userName) = 0;

Cette méthode permet de rejoindre un canal. Dans ARTC, les utilisateurs sont organisés par canaux. Les utilisateurs doivent rejoindre un canal pour publier ou s'abonner à des flux audio et vidéo. Cette méthode, JoinChannel[1/3] et JoinChannel[3/3] peuvent toutes être utilisées pour rejoindre un canal. Elles diffèrent par leurs méthodes d'authentification et les informations utilisateur qu'elles transmettent, comme suit :

  • JoinChannel[1/3] sert à rejoindre un canal avec un seul paramètre. Vous devez transmettre un jeton généré pour une jointure à paramètre unique en utilisant Authentification basée sur un jeton. Nous vous recommandons d'utiliser cette méthode pour rejoindre un canal dans les scénarios RTC.

  • Cette méthode sert à rejoindre un canal avec plusieurs paramètres. Vous devez transmettre un jeton multiparamètre généré en utilisant Authentification basée sur un jeton ainsi que les informations utilisateur qui ont servi à générer le jeton.

  • JoinChannel[3/3] sert aux scénarios d'interaction en temps réel avec l'IA. Vous devez transmettre un jeton à paramètre unique et définir la propriété utilisateur capabilityProfile en fonction du scénario.

Remarque
  • Par défaut, lorsque vous rejoignez un canal, vous vous abonnez aux flux audio et vidéo de tous les autres utilisateurs et diffusez vos propres flux vers les utilisateurs distants. Pour annuler l'abonnement par défaut, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="d4639ae922klp">SetDefaultSubscribeAllRemoteAudioStreams</a> et <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="6d0a63e70bpiz">SetDefaultSubscribeAllRemoteVideoStreams</a> avant d'appeler cette opération pour désactiver l'abonnement aux flux audio ou vidéo.

  • Il s'agit d'une méthode multiparamètre pour rejoindre un canal. Avant de l'appeler, vous devez générer un jeton multiparamètre. Pour plus d'informations, consultez Authentification basée sur un jeton.

Limites

  • Après avoir rejoint un canal avec succès, pour rejoindre un autre canal, vous devez d'abord appeler LeaveChannel pour quitter le canal actuel. Vous ne pouvez appeler la jointure à un autre canal qu'après avoir reçu le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="fcd2fac6abf0y">OnLeaveChannelResult</a>.

  • Cette méthode ne prend en charge la jointure qu'à un seul canal à la fois.

  • Les applications ayant des ID d'application différents ne peuvent pas communiquer entre elles.

Rappels associés

Un appel réussi à cette méthode déclenche les rappels suivants :

  • Le client local est notifié du résultat de la jointure à un canal via le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="b3db8c610ewua">OnJoinChannelResult</a>.

  • Après avoir rejoint un canal avec succès, le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="a1297d33bcd92">OnRemoteUserOnLineNotify</a> est déclenché sur les clients distants.

Paramètres

Nom

Type

Description

authInfo

AliEngineAuthInfo

Informations d'authentification.

userName

const char *

Nom d'affichage de l'utilisateur (et non son ID utilisateur).

JoinChannel[3/3]

Rejoint un canal.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const AliEngineChannelParam &userParam) = 0;

Cette méthode permet de rejoindre un canal. Dans ARTC, les utilisateurs sont organisés par canaux. Ils doivent rejoindre un canal pour publier ou s'abonner aux flux audio et vidéo. Cette méthode, ainsi que JoinChannel[1/3] et JoinChannel[2/3], peuvent toutes être utilisées pour rejoindre un canal. Elles diffèrent par leurs méthodes d'authentification et les informations utilisateur qu'elles transmettent, comme suit :

  • JoinChannel[1/3] est une méthode à paramètre unique pour rejoindre un canal dans les scénarios RTC. Vous devez transmettre un jeton généré pour la connexion à paramètre unique en utilisant l'authentification basée sur un jeton. Nous vous recommandons d'utiliser cette méthode pour rejoindre un canal dans les scénarios RTC.

  • JoinChannel[2/3] sert à rejoindre un canal avec plusieurs paramètres. Vous devez transmettre un jeton multiparamètre généré à l'aide de l'authentification basée sur un jeton ainsi que les informations utilisateur ayant servi à générer le jeton.

  • Cette méthode est destinée aux scénarios d'interaction en temps réel avec l'IA. Vous devez transmettre un jeton à paramètre unique et définir la propriété utilisateur capabilityProfile en fonction du scénario. Pour communiquer avec un agent IA, définissez-la sur AliCapabilityProfileHuman.

Remarque

Par défaut, lorsque vous rejoignez un canal, vous vous abonnez aux flux audio et vidéo de tous les autres utilisateurs présents dans le canal et vous diffusez vos propres flux audio et vidéo vers les utilisateurs distants. Pour annuler cet abonnement par défaut, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="952a402dc4v73">SetDefaultSubscribeAllRemoteAudioStreams</a> et <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="4e977610713wy">SetDefaultSubscribeAllRemoteVideoStreams</a> avant d'appeler cette API afin de désactiver l'abonnement aux flux audio ou vidéo.

Limites

  • Après avoir rejoint un canal avec succès, si vous souhaitez rejoindre un autre canal, vous devez d'abord appeler leaveChannel pour quitter le canal actuel. Vous ne pourrez rejoindre à nouveau un canal qu'après avoir reçu le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="15ec544e3985m">OnLeaveChannelResult</a>.

  • Cette méthode permet de rejoindre un seul canal à la fois.

  • Les applications ayant des ID d'application différents ne peuvent pas communiquer entre elles.

  • N'appelez pas cette méthode lors d'une nouvelle tentative après un échec de connexion à un canal.

Rappels associés

Un appel réussi à cette méthode déclenche les rappels suivants :

  • Le résultat de la connexion de l'utilisateur local au canal est fourni via le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="5d109191c950l">OnJoinChannelResult</a>.

  • Une fois que vous avez rejoint le canal avec succès, le client distant déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fa6f8d9357glx">OnRemoteUserOnLineNotify</a>.

Paramètres

Paramètre

Type

Description

token

const char *

Les informations d'authentification pour la connexion à paramètre unique.

channelId

const char *

Le canal à rejoindre. Cette valeur doit correspondre à celle utilisée pour générer le jeton. Vous pouvez laisser ce champ vide. S'il est vide, l'ID de canal utilisé pour générer le jeton est employé par défaut.

userId

const char *

L'ID utilisateur pour la connexion. Cette valeur doit correspondre à celle utilisée pour générer le jeton. Vous pouvez laisser ce champ vide. S'il est vide, l'ID utilisateur utilisé pour générer le jeton est employé par défaut.

userParam

AliEngineChannelParam

Propriétés de l'utilisateur, telles que le pseudonyme, le type et l'ID personnalisé.

Valeur de retour

0 : L'appel de la méthode a réussi. Une valeur différente de zéro : L'appel de la méthode a échoué.

LeaveChannel

Vous pouvez quitter le canal.

virtual int LeaveChannel() = 0;

Après avoir appelé cette méthode, le SDK met fin à l'appel audio et vidéo et quitte le canal actuel.

Remarque
  • Cette méthode est une opération asynchrone. Un appel réussi à cette méthode ne signifie pas que vous avez quitté le canal. Vous n'avez effectivement quitté le canal qu'une fois le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="2741d56c6eqau">OnLeaveChannelResult</a> renvoyé.

  • Après avoir quitté le canal, vous devez détruire le moteur et le définir sur null.

    mAliRtcEngine->LeaveChannel();
    AliEngine::Destroy();
    mAliRtcEngine = nullptr;

Quand appeler

  • Appelez cette méthode pour quitter un canal.

  • Vous devez appeler cette méthode pour quitter le canal actuel avant d'en rejoindre un nouveau.

Rappels associés

  • L'appel de cette méthode déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="9626ae24d89ue">OnLeaveChannelResult</a> sur le client local, qui indique si le client a bien quitté le canal.

  • Utilisateurs distants : Un appel réussi à cette API déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#44ce12a0ecj52" id="0dfcab6a6fylt">OnRemoteUserOffLineNotify</a>.

Description de la réponse

Une valeur de 0 indique que l'appel de la méthode a réussi. Toute autre valeur indique que l'appel de la méthode a échoué.

IsInCall

Vérifie si l'utilisateur se trouve actuellement dans un canal.

virtual bool IsInCall() = 0;

Valeur de retour

true : L'utilisateur se trouve dans un canal. false : L'utilisateur ne se trouve pas dans un canal.

SetClientRole

Définit le rôle de l'utilisateur.

virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;

Cette méthode définit le rôle de l'utilisateur en tant que streamer (diffuseur) ou viewer (spectateur).

En mode de diffusion interactive, avant de rejoindre un canal :

  • Si vous définissez le rôle de l'utilisateur sur streamer, le SDK publie automatiquement les flux audio et vidéo locaux et reçoit par défaut les flux audio et vidéo des autres streamers.

  • Si vous définissez le rôle de l'utilisateur sur viewer, le SDK ne publie pas les flux audio et vidéo locaux, mais reçoit les flux audio et vidéo des autres streamers.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal. Appelez-la avant la connexion pour définir le rôle de l'utilisateur, ou après la connexion pour changer de rôle.

Limites

Cette méthode n'est effective qu'en mode de diffusion interactive. Cela signifie que vous devez appeler la méthode <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#901e748242y3g" id="322c3da902jpt">SetChannelProfile</a> et définir le profil du canal sur AliEngineInteractiveLive.

En mode de diffusion interactive, nous vous recommandons d'appeler explicitement cette méthode pour définir le rôle de l'utilisateur avant de rejoindre un canal.

Paramètres

Nom

Type

Description

role

AliEngineClientRole

Le type de rôle de l'utilisateur. La valeur par défaut est AliEngineClientRolelive (viewer). Le type de rôle n'est valide qu'en mode non communication.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

GetClientRole

Récupère le type de rôle actuel de l'utilisateur (streamer ou viewer).

virtual AliEngineClientRole GetClientRole() = 0;

Valeur de retour

Si l'appel de la méthode réussit, il renvoie un objet AliEngineClientRole. Il s'agit d'un type d'énumération indiquant que le rôle est soit streamer (0), soit viewer (1).

RefreshAuthInfo[1/2]

Actualise les informations d'authentification.

virtual int RefreshAuthInfo(const AliEngineAuthInfo &authInfo) = 0;

Cette méthode met à jour les informations d'authentification. Le jeton expire après une certaine période. Lorsque le jeton expire, le SDK ne peut plus se connecter au serveur.

Remarque

Cette méthode et RefreshAuthInfo[2/2] mettent toutes deux à jour les informations d'authentification. Cette méthode sert à mettre à jour un jeton multiparamètre, tandis que RefreshAuthInfo[2/2] sert à mettre à jour un jeton à paramètre unique. Pour plus d'informations sur la génération de jetons, consultez l'authentification basée sur un jeton.

Quand appeler

Dans les situations suivantes :

  • Lorsque vous recevez le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="f52a19bb78yoi">OnAuthInfoWillExpire</a>, indiquant que les informations d'authentification sont sur le point d'expirer, nous vous recommandons de régénérer un jeton sur votre serveur, puis d'appeler cette méthode avec le nouveau jeton.

  • Si vous ne mettez pas à jour le jeton à temps, le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="440c501877fxr">OnAuthInfoExpired</a> est déclenché pour vous notifier que l'authentification a expiré. Vous devez alors régénérer le jeton et appeler JoinChannel pour rejoindre à nouveau le canal.

Paramètres

Nom

Type

Description

authInfo

AliEngineAuthInfo

Informations d'authentification.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

RefreshAuthInfo[2/2]

Actualise les informations d'authentification.

virtual int RefreshAuthInfo(const char *token) = 0;

Cette méthode met à jour le jeton. Le jeton expire après une certaine période. Lorsque le jeton expire, le SDK ne peut plus se connecter au serveur.

Remarque

Cette méthode et RefreshAuthInfo[1/2] mettent toutes deux à jour les informations d'authentification. Cette méthode sert à mettre à jour un jeton à paramètre unique, tandis que RefreshAuthInfo[1/2] sert à mettre à jour un jeton multiparamètre. Pour plus d'informations sur la génération de jetons, consultez l'authentification basée sur un jeton.

Quand appeler

Dans les situations suivantes, nous vous recommandons de régénérer le jeton sur votre serveur, puis d'appeler cette méthode pour transmettre le nouveau jeton :

  • Lorsque vous recevez le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="b21949148djrc">OnAuthInfoWillExpire</a>, indiquant que les informations d'authentification sont sur le point d'expirer.

  • Si le jeton n'est pas mis à jour à temps, le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="62df9bf63786v">OnAuthInfoExpired</a> est déclenché pour indiquer que l'authentification a expiré. Dans ce cas, vous devez appeler JoinChannel pour rejoindre à nouveau le canal.

Paramètres

Nom

Type

Description

token

const char *token

Les informations d'authentification pour la connexion à paramètre unique.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

PublishLocalAudioStream

Active ou désactive la publication du flux audio local.

virtual int PublishLocalAudioStream(bool enabled) = 0;

Cette méthode contrôle la publication du flux audio collecté localement. Le SDK publie le flux audio par défaut. Si vous ne souhaitez pas publier le flux audio par défaut, vous pouvez appeler PublishLocalAudioStream(false) avant de rejoindre le canal pour désactiver la publication du flux audio.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal. Si vous l'appelez avant de rejoindre un canal, vous modifiez la configuration par défaut, qui prend effet lors de la connexion au canal.

Rappels associés

Lorsque l'état de la diffusion du flux audio local change, le client local déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#eb8fab7f5ak7v" id="c584949653jn5">OnAudioPublishStateChanged</a> pour signaler le dernier état de la diffusion du flux audio. Le client distant déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="75f2096b1efxy">OnRemoteTrackAvailableNotify</a> pour signaler les modifications apportées aux flux audio et vidéo de l'utilisateur distant.

Paramètres

Nom

Type

Description

enable

bool

  • true : Envoie le flux audio local.

  • false : Arrête la publication. La valeur par défaut est false.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

IsLocalAudioStreamPublished

Interroge si la publication du flux audio est actuellement autorisée.

virtual bool IsLocalAudioStreamPublished() = 0;

Valeur de retour

true : La publication est autorisée. false : La publication n'est pas autorisée.

SetDefaultSubscribeAllRemoteAudioStreams

Définit s'il faut s'abonner aux flux audio distants par défaut.

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

Cette méthode configure l'abonnement par défaut aux flux audio des utilisateurs distants. Ce paramètre affecte le comportement d'abonnement aux flux audio pour les nouveaux utilisateurs qui rejoignent le canal. Nous vous recommandons de le définir sur true, sauf si vous avez des exigences particulières.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

  • Avant de rejoindre un canal :

    • Le SDK s'abonne par défaut aux flux audio des utilisateurs distants lorsque vous rejoignez un canal. Si vous souhaitez modifier ce comportement, appelez cette méthode avant de rejoindre le canal.

  • Après avoir rejoint un canal :

    • Si vous souhaitez arrêter l'abonnement par défaut, appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e95a7e2d6fjwt">SetDefaultSubscribeAllRemoteAudioStreams</a>(false). Vous ne vous abonnerez alors pas aux flux audio des utilisateurs qui rejoindront le canal ultérieurement.

    • Après avoir arrêté l'abonnement par défaut, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="1a391bcabc66e">SubscribeRemoteAudioStream</a> pour reprendre l'abonnement au flux audio d'un utilisateur spécifique. Si vous souhaitez reprendre l'abonnement pour plusieurs utilisateurs, vous devez appeler cette méthode plusieurs fois.

    • Après avoir arrêté l'abonnement par défaut, l'appel à <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e79b5ad58awcw">SetDefaultSubscribeAllRemoteAudioStreams</a>(true) reprend l'abonnement uniquement pour les flux audio des utilisateurs qui rejoignent le canal par la suite. Il ne s'abonne pas aux flux des utilisateurs distants qui ont rejoint le canal pendant que l'abonnement était arrêté.

Paramètres

Nom

Type

Description

sub

bool

  • true : Reçoit le flux audio de l'utilisateur.

  • false : Arrête la réception du flux audio de l'utilisateur. La valeur par défaut est true.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeRemoteAudioStream

Arrête ou reprend l'abonnement au flux audio d'un utilisateur distant spécifique.

virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;

Cette méthode arrête ou reprend l'abonnement au flux audio d'un utilisateur distant spécifique. Nous vous recommandons de le définir sur true, sauf si vous avez des exigences particulières.

Remarque

Par défaut, le SDK s'abonne aux flux audio de tous les utilisateurs distants lorsque vous rejoignez un canal. Si vous souhaitez modifier ce comportement, vous pouvez appeler <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="bf2d59f02d9tq">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) avant de rejoindre le canal pour annuler cette configuration par défaut.

Paramètres

Nom

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

sub

bool

  • true : Reçoit le flux audio de l'utilisateur spécifié.

  • false : Arrête la réception du flux audio de l'utilisateur spécifié. La valeur par défaut est true.

Description de la réponse

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeAllRemoteAudioStreams

Arrête ou reprend la réception de tous les flux audio distants.

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

Cette méthode est l'interrupteur principal pour l'abonnement aux flux audio distants. Nous vous recommandons de le définir sur true. Si vous le définissez sur false, les événements suivants se produisent :

  • L'abonnement à tous les flux audio distants dans le canal actuel est arrêté.

  • Les utilisateurs qui rejoignent le canal ultérieurement ne seront pas non plus abonnés.

  • Vous ne pouvez pas utiliser <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="aface4ad3920l">SubscribeRemoteAudioStream</a> pour contrôler le flux audio d'un utilisateur spécifique.

Pour vous réabonner, appelez à nouveau cette méthode et définissez-la sur true pour reprendre l'abonnement.

Remarque

Par défaut, le SDK s'abonne aux flux audio de tous les utilisateurs distants lorsque vous rejoignez un canal. Pour modifier ce comportement, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="3927721185m08">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) avant de rejoindre le canal pour annuler cette configuration par défaut.

Paramètres

Nom

Type

Description

sub

bool

  • true : Reçoit les flux audio de tous les utilisateurs.

  • false : Arrête la réception des flux audio de tous les utilisateurs. La valeur par défaut est true.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

PublishLocalVideoStream[1/2]

Publie ou arrête la publication du flux de la caméra.

virtual int PublishLocalVideoStream(bool enabled) = 0;

Cette méthode contrôle la publication du flux vidéo collecté localement.

Remarque

Le SDK publie le flux vidéo par défaut. Pour désactiver la publication du flux vidéo, vous pouvez appeler PublishLocalVideoStream(false) avant de rejoindre le canal.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Si vous l'appelez avant de rejoindre un canal, vous modifiez la configuration par défaut, qui prend effet lors de la connexion au canal.

Rappels associés

Lorsque l'état de la diffusion du flux audio local change, le client local déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="d37709b09147d">OnVideoPublishStateChanged</a> pour signaler le nouvel état de la diffusion du flux audio, et le client distant déclenche le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="f16e4b51bchqb">OnRemoteTrackAvailableNotify</a> pour signaler les modifications apportées aux flux audio et vidéo de l'utilisateur distant.

Paramètres

Nom

Type

Description

enable

bool

  • true : Envoie la vidéo.

  • false : Arrête l'envoi. La valeur par défaut est true.

Valeur de retour

  • 0 : L'appel de la méthode a réussi.

  • <0 : L'appel de la méthode a échoué.

PublishLocalVideoStream[2/2]

Active ou désactive l'envoi du flux vidéo.

virtual int PublishLocalVideoStream(bool enabled, AliEngineVideoTrack track) = 0;

Cette méthode contrôle la publication du flux vidéo collecté localement.

Remarque

Le SDK publie le flux vidéo par défaut. Pour désactiver la publication du flux vidéo, vous pouvez appeler PublishLocalVideoStream(false) avant de rejoindre le canal.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Si vous l'appelez avant de rejoindre un canal, vous modifiez la configuration par défaut, qui prend effet lors de la connexion au canal.

Rappels associés

Lorsque l'état de la diffusion du flux vidéo local change, le client local déclenche le rappel <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="18a9d4b47ezcc">OnVideoPublishStateChanged</a> pour signaler le dernier état de la diffusion du flux vidéo. Le client distant déclenche le rappel <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="d01e7a574f92o">OnRemoteTrackAvailableNotify</a> pour notifier que les flux audio et vidéo de l'utilisateur distant ont changé.

Paramètres

Nom

Type

Description

enable

bool

  • true : Envoie la vidéo.

  • false : Arrête l'envoi. La valeur par défaut est true.

track

AliEngineVideoTrack

Le type de flux vidéo, tel que le flux de la caméra ou le flux de partage d'écran.

Retourne

  • 0 : L'appel de la méthode a réussi.

  • <0 : L'appel de la méthode a échoué.

IsLocalVideoStreamPublished

Interroge si la publication du flux vidéo est actuellement autorisée.

virtual bool IsLocalVideoStreamPublished() = 0;

Valeur de retour

true : Le flux de la caméra est publié. false : Le flux de la caméra n'est pas publié.

SetDefaultSubscribeAllRemoteVideoStreams

Définit s'il faut recevoir les flux vidéo par défaut.

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

Cette méthode définit s'il faut s'abonner aux flux vidéo par défaut. Le SDK s'abonne par défaut.

Remarque

Par défaut, le SDK s'abonne aux flux vidéo des utilisateurs distants lorsque vous rejoignez un canal. Si vous souhaitez modifier ce comportement, vous pouvez appeler cette méthode avant de rejoindre le canal.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

  • Avant de rejoindre un canal :

    • Vous pouvez utiliser cette méthode pour annuler le paramètre d'abonnement par défaut.

  • Après avoir rejoint un canal :

    • Pour arrêter l'abonnement par défaut, appelez SetDefaultSubscribeAllRemoteVideoStreams(false). Cela empêchera l'abonnement aux flux vidéo des utilisateurs qui rejoindront le canal ultérieurement.

    • Après avoir arrêté l'abonnement par défaut, si vous souhaitez reprendre l'abonnement au flux vidéo d'un utilisateur spécifique, appelez la méthode SubscribeRemoteVideoStream. Pour reprendre l'abonnement pour plusieurs utilisateurs, vous devez l'appeler plusieurs fois.

    • Après l'arrêt de l'abonnement par défaut, un appel à SetDefaultSubscribeAllRemoteVideoStreams(false) reprend uniquement les flux audio des utilisateurs qui rejoignent le canal ultérieurement.

Paramètres

Nom

Type

Description

sub

bool

  • true : Reçoit le flux vidéo de l'utilisateur.

  • false : Ne reçoit pas le flux vidéo de l'utilisateur. La valeur par défaut est true.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeRemoteVideoStream

Interrompt ou reprend l'abonnement au flux vidéo d'un utilisateur distant.

virtual int SubscribeRemoteVideoStream(const char* uid, AliEngineVideoTrack track, bool sub) = 0;

Cette méthode permet de s'abonner ou de se désabonner du flux vidéo d'un utilisateur spécifique.

Remarque

Par défaut, le SDK s'abonne aux flux vidéo de tous les utilisateurs distants lorsque vous rejoignez un canal. Vous pouvez appeler <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="f71e02d13ap2b">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) avant de rejoindre le canal pour annuler cette configuration par défaut.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Paramètre

Type

Description

uid

const char*

ID de l'utilisateur distant.

track

AliEngineVideoTrack

Type de flux vidéo.

sub

bool

Indique s'il faut s'abonner au flux vidéo de l'utilisateur distant. Ce paramètre contrôle l'abonnement ou la désinscription.

Valeur de retour

  • true : Le paramétrage a réussi.

  • false : Le paramétrage a échoué.

SubscribeAllRemoteVideoStreams

Interrompt ou reprend la réception de tous les flux vidéo distants.

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

Cette méthode constitue le commutateur principal pour l'abonnement aux flux vidéo distants. Si vous la définissez sur false, les événements suivants se produisent :

  • L'abonnement à tous les flux vidéo distants dans le canal actuel est interrompu.

  • Les flux vidéo des nouveaux utilisateurs qui rejoignent ultérieurement le canal ne seront pas non plus reçus, même si vous avez appelé <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="b7b0080f3cnoq">SetDefaultSubscribeAllRemoteVideoStreams</a>(true) pour activer l'abonnement par défaut.

  • Vous ne pouvez pas utiliser <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#jyGTp" id="0e2edf97aa1g6">SubscribeRemoteVideoStream</a> pour contrôler indépendamment le flux audio d'un utilisateur spécifié.

Pour vous réabonner, appelez à nouveau cette méthode et définissez-la sur true pour reprendre l'abonnement.

Remarque

Par défaut, le SDK s'abonne aux flux vidéo de tous les utilisateurs distants lorsque vous rejoignez un canal. Pour modifier ce comportement, vous pouvez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="629f58d5304mf">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) avant de rejoindre le canal afin d'annuler cette configuration par défaut.

Paramètres

Nom

Type

Description

sub

bool

  • true : Reçoit les flux vidéo de tous les utilisateurs.

  • false : Interrompt la réception des flux vidéo de tous les utilisateurs. La valeur par défaut est true.

Description de la réponse

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeRemoteMediaStream[1/2]

Interrompt ou reprend le flux multimédia d'un utilisateur distant spécifique.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, bool subVideo,  bool subAudio) = 0;

Cette méthode permet de s'abonner simultanément aux flux audio et vidéo distants.

Remarque

Dans cette méthode, AliRtcVideoTrackNo de AliRtcVideoTrack n'est pas valide et n'a aucun effet.

Méthodes associées

Contrairement à SubscribeRemoteMediaStream[2/2], cette méthode utilise deux paramètres booléens, subVideo et subAudio, pour déterminer s'il faut s'abonner aux flux audio et vidéo distants. Le paramètre videoTrack contrôle le flux vidéo à extraire.

Paramètres

Paramètre

Type

Description

uid

const char*

ID de l'utilisateur distant.

videoTrack

AliEngineVideoTrack

Type de flux vidéo.

subVideo

boo

Interrompt ou reprend l'extraction du flux vidéo d'un utilisateur distant spécifique. Valeurs :

  • true (par défaut) : Reprend.

  • false : Interrompt.

subAudio

boo

Interrompt ou reprend l'extraction du flux audio d'un utilisateur distant spécifique. Valeurs :

  • true (par défaut) : Reprend.

  • false : Interrompt.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeRemoteMediaStream[2/2]

Interrompt ou reprend le flux multimédia d'un utilisateur distant spécifique.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, AliEngineAudioTrack audioTrack) = 0;

Cette méthode permet de s'abonner simultanément aux flux audio et vidéo distants.

Méthodes associées

Contrairement à SubscribeRemoteMediaStream[1/2], cette méthode utilise les paramètres videoTrack et audioTrack pour informer le SDK de l'état d'abonnement souhaité en un seul appel. Par exemple :

  • Pour s'abonner au flux de la caméra et au flux du microphone, définissez respectivement videoTrack et audioTrack sur AliRtcVideoTrackCamera et AliRtcAudioTrackMic lors de l'appel de la méthode.

  • Pour se désabonner du flux de la caméra tout en conservant le flux du microphone, appelez à nouveau la méthode et définissez respectivement videoTrack et audioTrack sur AliRtcVideoTrackNo et AliRtcAudioTrackMic.

  • Pour annuler les deux abonnements, appelez à nouveau la méthode et définissez respectivement videoTrack et audioTrack sur AliRtcVideoTrackNo et AliRtcAudioTrackNo.

  • Pour s'abonner simultanément au flux de la caméra et au flux de partage d'écran, définissez videoTrack sur AliRtcVideoTrackBoth. Le même principe s'applique à l'audio.

Paramètres

Paramètre

Type

Description

uid

const char*

ID de l'utilisateur distant.

videoTrack

AliEngineVideoTrack

Type de flux vidéo.

audioTrack

AliEngineAudioTrack

Type de flux audio.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SubscribeRemoteDestChannelStream

S'abonne au flux d'un utilisateur spécifié entre canaux.

virtual int SubscribeRemoteDestChannelStream(const char* channelId, const char* uid, AliEngineVideoTrack track, bool sub_audio, bool sub) = 0;

Paramètres

Paramètre

Type

Description

channelId

const char*

ID du canal distant.

uid

const char*

ID de l'utilisateur distant.

track

AliEngineVideoTrack

Flux vidéo auquel s'abonner.

sub_audio

bool

Interrompt ou reprend l'extraction du flux audio d'un utilisateur distant spécifique. Valeurs :

  • true (par défaut) : Reprend.

  • false : Interrompt.

sub

bool

Interrompt ou reprend l'abonnement inter-canaux au flux de l'utilisateur spécifié.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

SetRemoteAudioVolume

Ajuste le volume de lecture d'un utilisateur distant spécifié.

virtual int SetRemoteAudioVolume(const char *uid, int volume) = 0;

Paramètres

Paramètre

Type

Description

uid

const char*

ID de l'utilisateur distant.

volume

int

Volume de lecture. La plage est [0,100].

0 : Mise en sourdine.

100 : Volume d'origine.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec.

MuteLocalMic

Interrompt ou reprend l'envoi des données audio locales.

virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
Remarque

La mise en sourdine consiste à envoyer des trames audio silencieuses. Les modules de collecte et d'encodage continuent de fonctionner.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Rappels associés

Après un appel réussi, le rappel <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#a15f0a6cf6id7" id="f4ae88f094vqy">OnUserAudioMuted</a> est déclenché sur les clients distants pour indiquer si l'utilisateur est en sourdine.

Paramètres

Nom

Type

Description

mute

bool

  • true : Envoie des trames vides pour l'audio local.

  • false : Reprend le fonctionnement normal. La valeur par défaut est false.

mode

AliEngineMuteLocalAudioMode

Mode de mise en sourdine. La valeur par défaut est la mise en sourdine totale.

  • AliEngineMuteLocalAudioModeDefault : Met en sourdine tout, y compris le microphone et l'entrée audio externe.

  • AliEngineMuteLocalAudioModeMuteAll : Met en sourdine tout, y compris le microphone et l'entrée audio externe.

  • AliEngineMuteLocalAudioModeMuteOnlyMic : Met en sourdine uniquement le microphone.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

MuteRemoteAudio

Interrompt ou reprend la lecture de l'audio distant.

virtual int MuteRemoteAudio(const char *uid,
                                    bool mute) = 0;

Cette API sert uniquement à interrompre ou reprendre la lecture audio pour un utilisateur distant spécifié. Elle n'affecte pas l'extraction du flux ni le décodage de l'audio distant. Pour se désabonner du flux audio d'un utilisateur, appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="89841a0989t7y">SubscribeRemoteAudioStream</a>.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Nom

Type

Description

uid

const char *

ID de l'utilisateur.

mute

bool

  • true : Interrompt la lecture.

  • false : Reprend la lecture. La valeur par défaut est false.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

MuteAllRemoteAudio

Interrompt ou reprend la lecture des pistes audio de tous les utilisateurs distants.

virtual int MuteAllRemoteAudio(bool mute) = 0;

Utilisez cette méthode pour interrompre ou reprendre toute la lecture audio distante.

Remarque
  • Cette opération interrompt uniquement la lecture. L'extraction du flux et le décodage ne sont pas affectés.

  • Vous pouvez appeler cette méthode avant ou après avoir appelé JoinChannel.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Nom

Type

Description

mute

bool

  • true : Interrompt la lecture.

  • false : Reprend la lecture. La valeur par défaut est false.

Valeur de retour

0 : L'appel de la méthode a réussi. Une valeur non nulle : L'appel de la méthode a échoué.

StartAudioCapture[1/2]

Démarre la collecte audio.

virtual int StartAudioCapture() = 0;

Cette méthode démarre la collecte audio. Vous pouvez également l'appeler avant de rejoindre un canal pour anticiper le démarrage de la collecte audio. Si elle n'est pas configurée, le SDK contrôle automatiquement le périphérique de collecte audio. Pour démarrer la collecte audio après qu'elle a été arrêtée par un appel à stopAudioCapture, appelez cette méthode.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Méthodes associées

  • La méthode StartAudioCapture[2/2] permet de contrôler si le périphérique de collecte audio reste activé après avoir quitté le canal, via un paramètre.

Rappels associés

Après avoir appelé cette méthode pour modifier l'état de la collecte audio locale, vous pouvez récupérer le changement d'état via le rappel OnLocalAudioStateChange.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

StartAudioCapture[2/2]

Démarre la collecte audio.

virtual int StartAudioCapture(bool keepAlive) = 0;

Arrête la capture audio du microphone après la mise en sourdine.

Cette méthode démarre la collecte audio. Vous pouvez également l'appeler avant de rejoindre un canal pour anticiper le démarrage de la collecte audio. Si elle n'est pas configurée, le SDK contrôle automatiquement le périphérique de collecte audio.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Méthodes associées

Contrairement à StartAudioCapture[1/2], cette méthode vous permet de contrôler si le périphérique de collecte reste activé après avoir quitté le canal, grâce au paramètre keepAlive.

Rappels associés

Après avoir appelé cette méthode pour modifier l'état de la collecte audio locale, vous pouvez récupérer le changement d'état via le rappel OnLocalAudioStateChange.

Paramètres

Paramètre

Type

Description

keepAlive

bool

État du périphérique de collecte après avoir quitté le canal. Valeurs :

  • true : Le périphérique de collecte reste activé après avoir quitté le canal.

  • false (par défaut) : Le périphérique de collecte est désactivé après avoir quitté le canal.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

StopAudioCapture

Arrête la collecte audio.

virtual int StopAudioCapture() = 0;

Après avoir démarré la collecte du périphérique audio avec StartAudioCapture, vous pouvez appeler cette méthode pour l'arrêter.

Rappels associés

Après avoir appelé cette méthode pour modifier l'état de la collecte audio locale, vous pouvez récupérer le changement d'état via le rappel OnLocalAudioStateChange.

Valeur de retour

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

EnableAudioVolumeIndication

Définit la fréquence du rappel de volume et le coefficient de lissage.

virtual int EnableAudioVolumeIndication(int interval, int smooth, int reportVad) = 0;

Cette méthode permet au SDK de signaler périodiquement à l'application les informations relatives au volume des utilisateurs locaux publiant du contenu et de l'utilisateur distant ayant le volume instantané le plus élevé.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Rappels associés

Après un appel réussi à cette méthode, si des utilisateurs publient du contenu dans le canal, le SDK déclenche les deux rappels suivants à l'intervalle de temps défini :

  • Le volume audio de l'interlocuteur est signalé via le rappel OnAudioVolumeCallback. La fréquence du rappel est déterminée par le paramètre interval.

  • Détection d'activité vocale. Lorsqu'un utilisateur actif est détecté, l'UID de l'interlocuteur est signalé via le rappel OnActiveSpeaker.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Nom

Type

Description

interval

int

Intervalle de temps en millisecondes. La valeur minimale ne doit pas être inférieure à 10 ms. Nous recommandons de la définir entre 300 et 500 ms. Une valeur inférieure ou égale à 0 désactive les fonctions d'indication de volume et d'interlocuteur.

smooth

int

Coefficient de lissage. La plage est [0,9]. Plus la valeur est élevée, plus le degré de lissage est important ; inversement, plus la valeur est faible, meilleures sont les performances en temps réel. Nous recommandons de la définir sur 3.

reportVad

int

Interrupteur de détection de l'interlocuteur. Valeurs :

  • 1 : Activé. La méthode onAudioVolumeCallback est utilisée pour signaler l'état de chaque interlocuteur.

  • 0 : Désactivé.

Description de la réponse

0 : L'appel de la méthode a réussi. Autres valeurs : L'appel de la méthode a échoué.

StartAudioPlayer

Démarre le périphérique de lecture audio.

virtual int StartAudioPlayer() = 0;

Cette méthode permet de démarrer la lecture audio à l'avance. Si elle n'est pas configurée, le SDK démarre automatiquement la lecture audio après s'être abonné à un flux audio.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

StopAudioPlayer

Arrête la lecture audio.

virtual int StopAudioPlayer() = 0;

Cette méthode permet d'arrêter la lecture audio. Elle correspond à AliEngine::StartAudioPlayer.

Paramètres

Aucun.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

SetPlayoutVolume

Définit le volume de lecture.

virtual int SetPlayoutVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de lecture. La plage est [0 400]. 0 : Muet. >100 : Augmente le volume. <100 : Diminue le volume.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

SetRecordingVolume

virtual int SetRecordingVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de lecture. La plage est [0 400]. 0 : Muet. >100 : Augmente le volume. <100 : Diminue le volume.

Description de la réponse

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

PlayAudioFileTest

Lit un fichier audio.

virtual int PlayAudioFileTest(const char* filePath) = 0;

Paramètres

Nom

Type

Description

filePath

const char*

Le chemin du fichier audio à lire.

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

StopAudioFileTest

Arrête la lecture du fichier audio.

virtual int StopAudioFileTest() = 0;

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

StartAudioCaptureTest

Démarre un test de capture audio avant un appel.

virtual int StartAudioCaptureTest() = 0;

Cette méthode permet de démarrer un test de capture audio. Vous pouvez utiliser le résultat du rappel AliEngineEventListener::OnTestAudioVolumeCallback pour déterminer si la capture audio fonctionne correctement.

Remarque

Vous ne pouvez appeler cette méthode qu'avant de rejoindre un canal (JoinChannel).

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

StopAudioCaptureTest

Arrête le test de capture audio.

virtual int StopAudioCaptureTest() = 0;
Remarque

Vous ne pouvez appeler cette méthode qu'avant de rejoindre un canal (JoinChannel).

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

EnableSystemAudioRecording

Active ou désactive la capture et la publication audio du système.

virtual int EnableSystemAudioRecording(bool enable, const char *path = nullptr, const char *device_id = nullptr) = 0;

Cette méthode active ou désactive la capture audio du système, telle que les sons émis par les navigateurs et les applications.

Remarque

Cette méthode est prise en charge uniquement sur Windows et macOS.

Paramètres

Nom

Type

Description

enable

bool

Active ou désactive la capture et la publication audio du système.

  • true : Activer.

  • false : Désactiver.

path

const char*

Si path est vide, le son de l'ensemble du système est capturé. Si path correspond au chemin d'un programme .exe, ce programme est démarré et son son est capturé.

device_id

const char*

Si path est vide, le son du périphérique de carte sonore par défaut est capturé. Sinon, le son émis par le périphérique portant cet device_id est capturé. Utilisez l'ID renvoyé par GetSystemRecordAudioPlayerList.

Valeur de retour

  • 0 : L'appel de méthode a réussi.

  • <0 : L'appel de méthode a échoué.

IsSystemAudioRecording

Vérifie si la capture et la publication audio du système sont actuellement activées.

virtual bool IsSystemAudioRecording() = 0;
Remarque

Pour activer ou désactiver la capture audio du système, appelez EnableSystemAudioRecording. Cette méthode n'est valide que sur les plateformes Windows et macOS.

Valeur de retour

  • true : Activé.

  • false : Désactivé.

SetSystemAudioRecordingVolume

Définit le volume de capture et de publication audio du système.

virtual int SetSystemAudioRecordingVolume(int volume) = 0;

Cette méthode n'est valide que sur les plateformes Windows et macOS.

Ce paramètre ne peut être défini qu'après l'activation de la capture et de la publication audio du système. Sinon, le paramètre est ignoré.

Paramètres

Nom

Type

Description

volume

int

Le volume de publication de la capture système. La plage est [0-400].

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

GetSystemAudioRecordingVolume

Récupère le volume actuel de capture et de publication audio du système.

virtual int GetSystemAudioRecordingVolume() = 0;

Cette méthode n'est valide que sur les plateformes Windows et macOS.

Valeur de retour

Le volume de publication de la capture système.

SetSystemAudioPlayoutVolume

Définit le volume de lecture audio du système.

virtual int SetSystemAudioPlayoutVolume(int volume) = 0;

Cette méthode n'est valide que sur les plateformes Windows et macOS.

Ce paramètre ne peut être défini qu'après l'activation de la capture et de la publication audio du système. Sinon, le paramètre est ignoré.

Paramètres

Nom

Type

Description

volume

int

Le volume de lecture de la capture système. La plage est [0-400].

Valeur de retour

  • 0 : Succès.

  • <0 : Échec.

GetSystemAudioPlayoutVolume

Récupère le volume actuel de lecture audio du système.

virtual int GetSystemAudioPlayoutVolume() = 0;

Cette méthode n'est valide que sur les plateformes Windows et macOS.

Valeur de retour

Le système suit le volume de lecture.

GetAudioCaptureList

Récupère la liste des périphériques d'enregistrement du système.

virtual AliEngineDeviceInfoList* GetAudioCaptureList() = 0;

Valeur de retour

Un pointeur vers la liste des périphériques d'enregistrement, AliEngineDeviceInfoList *.

GetCurrentAudioCaptureName

Récupère le nom du périphérique d'enregistrement utilisé.

virtual String GetCurrentAudioCaptureName() = 0;

Valeur de retour

Le nom du périphérique de capture audio actuel.

GetCurrentAudioCaptureID

Récupère l'ID du périphérique d'enregistrement utilisé.

virtual String GetCurrentAudioCaptureID() = 0;

Valeur de retour

L'ID du périphérique d'enregistrement actuellement utilisé.

SetCurrentAudioCaptureName

Sélectionne un périphérique d'enregistrement par son nom.

virtual int SetCurrentAudioCaptureName(const char* captureName) = 0;

Paramètres

Nom

Type

Description

captureName

const char *

Le nom du périphérique d'enregistrement.

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

SetCurrentAudioCaptureID

Sélectionne un périphérique d'enregistrement par son ID.

virtual int SetCurrentAudioCaptureID(const char* captureID) = 0;

Paramètres

Nom

Type

Description

captureID

const char *

L'ID du périphérique d'enregistrement.

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

GetAudioPlayerList

Récupère la liste des haut-parleurs du système.

virtual AliEngineDeviceInfoList* GetAudioPlayerList() = 0;

Valeur de retour

Un pointeur vers la liste des haut-parleurs du système, AliEngineDeviceInfoList *.

GetSystemRecordAudioPlayerList

Récupère la liste des haut-parleurs enregistrables du système (pour l'enregistrement interne au système).

virtual AliEngineDeviceInfoList* GetSystemRecordAudioPlayerList() = 0;

Valeur de retour

La liste des périphériques de lecture audio est principalement utilisée comme dernier paramètre pour EnableSystemAudioRecording afin de capturer l'audio de lecture du système.

GetCurrentAudioPlayerName

Récupère le nom du haut-parleur actuellement utilisé.

virtual String GetCurrentAudioPlayerName() = 0;

Valeur de retour

Le nom du périphérique de lecture audio actuel.

GetCurrentAudioPlayerID

Récupère l'ID du haut-parleur actuellement utilisé.

virtual String GetCurrentAudioPlayerID() = 0;

Valeur de retour

L'ID du périphérique de lecture audio actuel.

SetCurrentAudioPlayerName

Sélectionne un haut-parleur par son nom.

virtual int SetCurrentAudioPlayerName(const char* playerName) = 0;

Valeur de retour

Le nom du périphérique de lecture audio.

SetCurrentAudioPlayerID

Sélectionne un haut-parleur par son ID.

virtual int SetCurrentAudioPlayerID(const char* playerID) = 0;

Paramètres

Nom

Type

Description

playerID

const char *

L'ID du périphérique de lecture.

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

SetRecordingDeviceVolume

Définit le volume du périphérique de capture audio. La plage de volume est [0, 100].

virtual int SetRecordingDeviceVolume(int volume) = 0;

Liste des paramètres

Nom

Type

Description

volume

int

Volume [0..100].

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

GetRecordingDeviceVolume

Récupère le volume du périphérique de capture audio.

virtual int GetRecordingDeviceVolume() = 0;

Valeur de retour

>=0 renvoie le volume. Les autres valeurs indiquent un échec.

SetPlaybackDeviceVolume

Définit le volume du périphérique de lecture audio. La plage de volume est [0, 100].

virtual int SetPlaybackDeviceVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Volume [0..100]

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

GetPlaybackDeviceVolume

Récupère le volume du périphérique de lecture audio.

virtual int GetPlaybackDeviceVolume() = 0;

Valeur de retour

>=0 pour le volume système. Autres valeurs pour un échec.

SetRecordingDeviceMute

Coupe le son du périphérique de capture audio.

virtual int SetRecordingDeviceMute(bool mute) = 0;

Paramètres

Nom

Type

Description

mute

bool

Indique s'il faut couper le son de l'enregistrement.

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

GetRecordingDeviceMute

Récupère l'état de mise en sourdine du périphérique de capture audio.

virtual bool GetRecordingDeviceMute() = 0;

Valeur de retour

Indique si l'enregistrement est en sourdine.

SetPlaybackDeviceMute

Coupe le son du périphérique de lecture audio.

virtual int SetPlaybackDeviceMute(bool mute) = 0;

Paramètres

Nom

Type

Description

mute

bool

Indique s'il faut couper le son de l'enregistrement.

Valeur de retour

0 en cas de succès, autres valeurs en cas d'échec.

GetPlaybackDeviceMute

Récupère l'état de mise en sourdine du périphérique de lecture audio.

virtual bool GetPlaybackDeviceMute() = 0;

Valeur de retour

Indique si le périphérique de lecture est en sourdine.

SetAudioEffectVoiceChangerMode

Définit le mode d'effet de modification de la voix.

virtual int SetAudioEffectVoiceChangerMode(const AliEngineAudioEffectVoiceChangerMode &mode) = 0;

Paramètres

Nom

Type

Description

mode

AliEngineAudioEffectVoiceChangerMode

La valeur du mode. La valeur par défaut est AliEngineAudioEffectVoiceChangerOff.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAudioEffectPitchValue

Définit le paramètre de hauteur tonale.

virtual int SetAudioEffectPitchValue(double value) = 0;

Paramètres

Nom

Type

Description

value

double

La plage est [0,5, 2,0]. La valeur par défaut est 1,0, ce qui signifie que la hauteur tonale reste inchangée.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAudioEffectReverbMode

Définit le mode d'effet de réverbération.

virtual int SetAudioEffectReverbMode(const AliEngineAudioEffectReverbMode& mode) = 0;

Paramètres

Nom

Type

Description

mode

AliEngineAudioEffectReverbMode

Le mode d'effet sonore. La valeur par défaut est AliEngineAudioEffectReverbOff.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAudioEffectReverbParamType

Définit le type d'effet de réverbération et les paramètres spécifiques.

virtual int SetAudioEffectReverbParamType(const AliEngineAudioEffectReverbParamType& type,
                                                  float value) = 0;

Paramètres

Nom

Type

Description

type

AliEngineAudioEffectReverbParamType

Le mode de réverbération de l'effet sonore.

value

float

La valeur spécifique du paramètre.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

setAudioEffectBeautifyMode

Définit le mode d'effet sonore d'embellissement prédéfini.

virtual int SetAudioEffectBeautifyMode(const AliEngineAudioEffectBeautifyMode& mode) = 0;

Cette méthode définit les modes d'embellissement prédéfinis au sein du SDK. Elle convient aux scénarios nécessitant l'embellissement de la qualité vocale humaine, tels que le streaming vocal en direct, le karaoké et les réseaux sociaux vocaux. En sélectionnant différents modes d'embellissement, vous pouvez modifier l'effet auditif de la voix humaine, par exemple en renforçant le magnétisme ou en améliorant la clarté. Cela améliore l'expérience d'écoute des utilisateurs distants.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Paramètre

Type

Description

mode

AliRtcAudioEffectBeautifyMode

Le mode d'effet sonore d'embellissement. Consultez la définition de l'énumération pour plus de détails.

Valeur de retour

  • 0 : Le paramétrage a réussi.

  • Une valeur non nulle : Le paramétrage a échoué.

setAudioEffectEqualizationParam

Définit les paramètres de l'égaliseur audio (EQ) pour ajuster le gain d'une bande de fréquence spécifiée.

virtual int SetAudioEffectEqualizationParam(const AliEngineAudioEffectEqualizationBandFrequency &bandIndex, float gain) = 0;

Cette méthode ajuste la voix humaine ou le signal audio collecté localement à l'aide d'un égaliseur graphique. En ajustant le gain (en dB) de l'une des 10 bandes de fréquence fixes, vous pouvez personnaliser le timbre. Elle convient aux scénarios tels que l'optimisation de la clarté vocale, l'amélioration de la voix humaine et l'aide à la réduction du bruit.

L'égaliseur prend en charge l'ajustement de tout le spectre audio de 31 Hz à 16 kHz, avec un total de 10 bandes de fréquence standard. La valeur de gain pour chaque bande peut être définie indépendamment, allant de [-15, 15] dB, avec une valeur par défaut de 0 dB (ni amplification ni atténuation).

Limites

  • L'égaliseur ne peut pas être utilisé seul avant l'activation du mode d'embellissement. Vous devez appeler cette méthode après avoir appelé setAudioEffectBeautifyMode.

Paramètres

Paramètre

Type

Description

bandIndex

AliRtcAudioEffectEqualizationBandFrequency

L'index de la bande de fréquence à ajuster, correspondant à un segment de la fréquence centrale (31 Hz ~ 16 kHz).

gain

float

La valeur de gain en dB, allant de [-15, 15].

Description de la réponse

0 : Le paramétrage a réussi.

Une valeur non nulle : Le paramétrage a échoué.

AddExternalAudioStream

Ajoute un flux audio externe.

virtual int AddExternalAudioStream(const AliEngineExternalAudioStreamConfig& config) = 0;

Cette méthode ajoute un nouveau flux audio externe. Les étapes sont les suivantes :

  1. Appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="08ee3d1ed35jj">AddExternalAudioStream</a> pour ajouter un flux audio externe et obtenir l'ID du flux audio externe.

  2. Appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="fae817d0f00p3">PushExternalAudioStreamRawData</a> pour pousser les données audio vers le flux audio créé.

  3. Lorsque l'appel se termine, vous devez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="3b9a3eb119umh">RemoveExternalAudioStream</a> pour supprimer le flux audio externe.

Pour plus d'informations sur la publication d'audio personnalisé collecté dans un canal, consultez Custom audio collection.

Paramètres

Nom

Type

Description

config

AliEngineExternalAudioStreamConfig

Configuration du flux audio externe.

Valeur de retour

Une valeur supérieure à 0 indique un appel de méthode réussi et renvoie l'ID du flux audio externe. Les autres valeurs indiquent un appel de méthode échoué.

PushExternalAudioStreamRawData

Injecte des données de flux audio externe.

virtual int PushExternalAudioStreamRawData(int streamId, AliEngineAudioRawData& data) = 0;

Cette méthode transmet des données dans le flux audio spécifié. Les étapes sont les suivantes :

  1. Appelez l'API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="3836ac109732c">AddExternalAudioStream</a> pour ajouter un flux audio externe et obtenir l'ID du flux audio externe.

  2. Appelez PushExternalAudioStreamRawData pour transmettre les données audio dans le flux audio créé.

  3. Lorsque l'appel se termine, vous devez appeler <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="398ea88d61fn0">RemoveExternalAudioStream</a> pour supprimer le flux audio externe.

Pour plus d'informations sur la publication d'audio personnalisé collecté dans un canal, consultez Custom audio collection.

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio externe.

data

AliEngineAudioRawData

Les données audio.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetExternalAudioStreamPublishVolume

Définit le volume de publication du flux audio externe.

virtual int SetExternalAudioStreamPublishVolume(int streamId, int vol) = 0;

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio externe.

vol

int

Le volume de publication.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetExternalAudioStreamPlayoutVolume

Définit le volume de publication du flux audio externe.

virtual int SetExternalAudioStreamPlayoutVolume(int streamId, int vol) = 0;

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio externe.

vol

int

Le volume de publication.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

GetExternalAudioStreamPublishVolume

Récupère le volume de publication du flux audio externe.

virtual int GetExternalAudioStreamPublishVolume(int streamId) = 0;

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio externe.

Renvoie

[0, 100] : Le volume de publication. Une valeur inférieure à 0 indique un échec.

GetExternalAudioStreamPlayoutVolume

Récupère le volume de lecture du flux audio externe.

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio externe.

Valeur de retour

[0, 100] : le volume de lecture. Une valeur inférieure à 0 indique un échec.

RemoveExternalAudioStream

Supprime un flux audio externe.

virtual int RemoveExternalAudioStream(int streamId) = 0;

Cette méthode supprime le flux audio externe correspondant en fonction du paramètre streamId transmis. Elle correspond à la méthode AddExternalAudioStream.

Quand appeler

Si vous souhaitez utiliser la fonctionnalité d'entrée audio personnalisée, vous devez appeler la méthode AddExternalAudioStream pour ajouter un flux audio et obtenir l'ID du flux audio externe. Vous pouvez ensuite appeler l'interface <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="bdab74f108i1p">PushExternalAudioStreamRawData</a> pour transmettre vos données audio au SDK. Lorsque vous souhaitez arrêter l'entrée audio personnalisée, appelez cette interface pour supprimer le flux audio externe correspondant et libérer les ressources.

Paramètres

Nom

Type

Description

streamId

int

L'ID du flux audio.

Valeur de retour

0 en cas de succès, toute autre valeur en cas d'échec.

GetAudioFileInfo

Récupère les informations d'un fichier audio.

virtual int GetAudioFileInfo(const char *filePath) = 0;

Il s'agit d'une méthode asynchrone. Vous pouvez récupérer les informations du fichier audio via AliEngineEventListener::OnAudioFileInfo.

Paramètres

Nom

Type

Description

filePath

const char *

Le chemin d'accès au fichier audio.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

StartAudioAccompany

Démarre le mixage audio pour l'accompagnement.

virtual int StartAudioAccompany(const char *filePath, const AliEngineAudioAccompanyConfig& config) = 0;

Il s'agit d'une méthode asynchrone. Vous pouvez écouter l'état du lecteur d'accompagnement audio via AliEngineEventListener::OnAudioAccompanyStateChanged.

Paramètres

Nom

Type

Description

filePath

const char *

Le chemin d'accès au fichier audio.

config

const AliEngineAudioAccompanyConfig

La configuration de lecture de l'accompagnement.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

StopAudioAccompany

Arrête le mixage audio pour l'accompagnement.

virtual int StopAudioAccompany() = 0;

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

SetAudioAccompanyVolume

Définit le volume de l'accompagnement.

 virtual int SetAudioAccompanyVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de l'accompagnement. La plage est [0 100].

  • 0 : Muet.

  • 100 : Volume d'origine.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

SetAudioAccompanyPublishVolume

Définit le volume de publication de l'accompagnement.

virtual int SetAudioAccompanyPublishVolume(int volume) = 0;
Remarque

Le volume ne peut être défini qu'après que AliEngine::StartAudioAccompany a pris effet.

Paramètres

Nom

Type

Description

volume

int

Le volume de publication de l'accompagnement. La plage est [0 100].

  • 0 : Muet.

  • 100 : Volume d'origine.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

GetAudioAccompanyPublishVolume

Récupère le volume de publication de l'accompagnement.

virtual int GetAudioAccompanyPublishVolume() = 0;

Valeur de retour

Le volume de publication de l'accompagnement. La plage est [0-100].

SetAudioAccompanyPlayoutVolume

Définit le volume de lecture local pour l'accompagnement.

virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de lecture de l'accompagnement. La plage est [0 100].

  • 0 : Muet.

  • 100 : Volume d'origine.

Valeur de retour

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

GetAudioAccompanyPlayoutVolume

Récupère le volume de lecture local pour l'accompagnement.

virtual int GetAudioAccompanyPlayoutVolume() = 0;

Valeur de retour

Le volume de lecture local pour l'accompagnement. La plage est [0-100].

PauseAudioAccompany

Met en pause le mixage audio pour l'accompagnement.

virtual int PauseAudioAccompany() = 0;

Description de la réponse

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

ResumeAudioAccompany

Reprend le mixage audio pour l'accompagnement.

virtual int ResumeAudioAccompany() = 0;

Description de la réponse

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

GetAudioAccompanyDuration

Récupère la durée du fichier d'accompagnement en millisecondes.

virtual int GetAudioAccompanyDuration() = 0;

Description de la réponse

La durée du fichier d'accompagnement audio en millisecondes.

GetAudioAccompanyCurrentPosition

Récupère la progression de la lecture du fichier d'accompagnement en millisecondes.

virtual int GetAudioAccompanyCurrentPosition() = 0;

Valeur de retour

La position de lecture actuelle du fichier d'accompagnement audio en millisecondes.

SetAudioAccompanyPosition

Définit la position de lecture du fichier d'accompagnement.

virtual int SetAudioAccompanyPosition(int pos) = 0;

Description de la réponse

  • 0 : Succès.

  • Une valeur non nulle : Échec. Un code d'erreur est renvoyé.

PreloadAudioEffect

Précharge un fichier d'effet sonore.

virtual int PreloadAudioEffect(unsigned int soundId,
                                       const char *filePath) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

filePath

const char *

Le chemin d'accès au fichier d'effet sonore.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

UnloadAudioEffect

Supprime un fichier d'effet sonore préchargé.

virtual int UnloadAudioEffect(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

NSInteger

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

PlayAudioEffect

Démarre la lecture d'un effet sonore.

virtual int PlayAudioEffect(unsigned int soundId, const char *filePath, const AliEngineAudioEffectConfig& config) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

filePath

const char *

Le chemin d'accès au fichier d'effet sonore.

config

AliEngineAudioEffectConfig

La configuration de l'effet sonore.

Retourne

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

StopAudioEffect

Arrête la lecture d'un effet sonore.

virtual int StopAudioEffect(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

StopAllAudioEffects

Arrête la lecture de tous les effets sonores.

- (int)StopAllAudioEffects;

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

PauseAudioEffect

Met en pause un effet sonore.

virtual int PauseAudioEffect(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

PauseAllAudioEffects

Met en pause tous les effets sonores.

virtual int PauseAllAudioEffects() = 0;

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

ResumeAudioEffect

Reprend la lecture d'un effet sonore.

virtual int ResumeAudioEffect(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

ResumeAllAudioEffects

Reprend la lecture de tous les effets sonores.

virtual int ResumeAllAudioEffects() = 0;

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAudioEffectPublishVolume

Définit le volume de publication pour un effet sonore.

virtual int SetAudioEffectPublishVolume(unsigned int soundId, int volume) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

volume

int

Le volume de mixage. La plage est [0 100]. La valeur par défaut est 50.

Retourne

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

GetAudioEffectPublishVolume

Récupère le volume de publication d'un effet sonore.

virtual int GetAudioEffectPublishVolume(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAllAudioEffectsPublishVolume

Définit le volume de lecture local pour tous les effets sonores.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de mixage. La plage est [0 100]. La valeur par défaut est 50.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAudioEffectPlayoutVolume

Définit le volume de lecture local pour un effet sonore.

virtual int SetAudioEffectPlayoutVolume(unsigned int soundId, int volume) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

volume

int

Le volume de mixage. La plage est [0 100]. La valeur par défaut est 50.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

GetAudioEffectPlayoutVolume

Récupère le volume de lecture local d'un effet sonore.

virtual int GetAudioEffectPlayoutVolume(unsigned int soundId) = 0;

Paramètres

Nom

Type

Description

soundId

unsigned int

L'ID attribué au fichier d'effet sonore par l'utilisateur.

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAllAudioEffectsPlayoutVolume

Définit le volume de lecture pour tous les effets sonores.

virtual int SetAllAudioEffectsPlayoutVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de mixage. La plage est [0 100]. La valeur par défaut est 50.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetAllAudioEffectsPublishVolume

Définit le volume de publication pour tous les effets sonores.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Paramètres

Nom

Type

Description

volume

int

Le volume de mixage. La plage est [0 100]. La valeur par défaut est 50.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetLocalViewConfig

Définit la fenêtre de rendu et les paramètres de dessin pour l'aperçu local.

virtual int SetLocalViewConfig(AliEngineVideoCanvas renderConfig,
                                         AliEngineVideoTrack track) = 0;

Cette méthode configure la vue d'aperçu local. Elle lie la vue d'affichage du flux vidéo local et définit le mode de rendu, le mode miroir et l'angle de rotation de la vue de l'utilisateur local. Elle affecte uniquement l'aperçu de l'utilisateur local et non la vidéo publiée. Pour configurer la vue d'un utilisateur distant, appelez SetRemoteViewConfig.

Remarque
  • Si le paramètre view dans AliEngineVideoCanvas est vide, le rendu s'arrête.

  • Pour réinitialiser le paramètre renderMode de AliEngineVideoCanvas pendant la lecture, conservez les autres paramètres inchangés et modifiez uniquement renderMode.

  • Pour réinitialiser le paramètre mirrorMode de AliEngineVideoCanvas pendant la lecture, conservez les autres paramètres inchangés et modifiez uniquement mirrorMode.

  • Nous vous recommandons d'appeler explicitement StartPreview() pour démarrer l'aperçu local.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Paramètres

Nom

Type

Description

renderConfig

AliEngineVideoCanvas

Les paramètres de rendu, y compris la fenêtre de rendu et la méthode de rendu.

track

AliEngineVideoTrack

Le type de piste vidéo.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetCameraCapturerConfiguration

Définit les préférences de capture de la caméra.

virtual int SetCameraCapturerConfiguration(const AliEngineCameraCapturerConfiguration& config) = 0;

Cette méthode configure les préférences de capture de la caméra, telles que la direction de la caméra et la fréquence d'images de capture.

Quand appeler

Vous devez effectuer ce paramétrage avant d'activer la caméra. Par exemple, appelez-la avant les opérations suivantes :

  • StartPreview (démarre l'aperçu)

  • JoinChannel (rejoint un canal)

Paramètres

Nom

Type

Description

config

AliEngineCameraCapturerConfiguration

Les préférences de capture de la caméra, y compris la direction de la caméra et la fréquence d'images. Valeurs par défaut :

  • preference :

    • AliEngineCaptureOutputPreferenceAuto : Le SDK ajuste automatiquement les paramètres de capture.

    • AliEngineCaptureOutputPreferencePerformance : Aperçu haute définition. La capture privilégie la qualité de l'aperçu vidéo.

    • AliEngineCaptureOutputPreferencePerformance : La capture sélectionne la résolution la plus proche de la résolution de publication, en privilégiant les performances de l'appareil.

  • fps : -1 indique l'utilisation du paramètre de fréquence d'images interne de l'encodeur. La valeur par défaut est 15.

  • cameraCaptureProfile : 0, spécifie une résolution spécifique pour la capture vidéo.

  • disableVideoCaptureReverse : Ne retourne pas la trame vidéo capturée en fonction du rapport d'aspect. -1 : par défaut, 0 : non effectif, 1 : effectif.

  • captureObserverOriginal : Indique si les données originales de la trame vidéo doivent être rappelées. -1 : par défaut, 0 : désactivé, 1 : activé.

Une valeur de -1 pour les éléments ci-dessus indique l'utilisation des paramètres par défaut internes du SDK.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

EnableLocalVideo

Désactive ou réactive la capture vidéo locale.

virtual int EnableLocalVideo(bool enabled) = 0;

Cette méthode contrôle l'activation et la désactivation de la capture vidéo locale. Lorsque la capture vidéo locale est désactivée, ni l'aperçu local ni le flux publié ne contiennent de données vidéo, mais cela n'affecte pas la réception de la vidéo distante. Si vous appelez cette méthode pour désactiver la capture de la caméra locale, l'aperçu local et le flux publié distant resteront sur la dernière image.

Remarque

La capture vidéo locale est activée par défaut dans le SDK.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal.

Rappels associés

Après un appel réussi à cette méthode, le rappel OnUserVideoEnabled notifie les utilisateurs distants.

Paramètres

Nom

Type

Description

enable

bool

true : Reprend le fonctionnement normal. false : Arrête la capture vidéo. La valeur par défaut est true.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

MuteLocalCamera

Arrête ou reprend l'envoi des données vidéo locales.

virtual int MuteLocalCamera(bool mute, AliEngineVideoTrack track) = 0;

Lorsque vous publiez un flux, vous pouvez appeler cette méthode pour publier des trames vidéo entièrement noires. L'aperçu local reste normal, et les modules de capture, d'encodage et d'envoi continuent de fonctionner, mais le contenu vidéo se compose de trames noires.

Remarque

Cette méthode contrôle uniquement l'envoi de trames noires sur le flux vidéo spécifié. La capture et l'envoi des données ne s'arrêtent pas. Pour désactiver la capture, utilisez la méthode EnableLocalVideo. Pour arrêter l'envoi des données vidéo, utilisez la méthode PublishLocalVideoStream.

Paramètres

Nom

Type

Description

mute

bool

true : Envoie des images noires pour les données vidéo. false : Reprend le fonctionnement normal. La valeur par défaut est false.

track

AliEngineVideoTrack

Le type de piste vidéo dont l'état de publication doit être modifié.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

SetRemoteViewConfig

Définit la fenêtre de rendu et les paramètres de dessin pour une vidéo distante.

virtual int SetRemoteViewConfig(AliEngineVideoCanvas renderConfig,
                                          const char *uid,
                                          AliEngineVideoTrack track) = 0;

Cette méthode attache la vue d'affichage pour un flux vidéo spécifié d'un utilisateur distant et définit les propriétés de l'affichage local de la vue distante, telles que le mode de rendu, le mode miroir et l'angle de rotation. Cette action affecte uniquement l'image vidéo que voit l'utilisateur local. Pour définir la vue d'aperçu local, appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#fbc8ab10f5e03" id="c0f59b8c26y7o">SetLocalViewConfig</a>.

  • Si le paramètre view dans AliEngineVideoCanvas est vide, le rendu s'arrête.

  • Pour réinitialiser le paramètre renderMode de AliEngineVideoCanvas pendant la lecture, conservez les autres paramètres inchangés et modifiez uniquement renderMode.

  • Pour réinitialiser le paramètre mirrorMode de AliEngineVideoCanvas pendant la lecture, conservez les autres paramètres inchangés et modifiez uniquement mirrorMode.

Quand appeler

Nous vous recommandons d'appeler cette méthode lorsque vous recevez le rappel OnRemoteTrackAvailableNotify, c'est-à-dire lorsque la vidéo de l'utilisateur distant est disponible.

Paramètres

Nom

Type

Description

canvas

AliEngineVideoCanvas

Paramètres de rendu, y compris la fenêtre de rendu et la méthode de rendu.

uid

const char *

L'ID utilisateur.

track

AliEngineVideoTrack

Le type de piste vidéo à définir.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

IsCameraOn

Vérifie si la caméra est activée.

virtual bool IsCameraOn() = 0;

Valeur de retour

true : La caméra est activée. false : La caméra n'est pas activée.

SetVideoEncoderConfiguration

Définit les propriétés d'encodage vidéo.

virtual void SetVideoEncoderConfiguration(const AliEngineVideoEncoderConfiguration& config) = 0;

Cette méthode définit les paramètres vidéo pour les propriétés d'encodage du flux vidéo, tels que la résolution, la fréquence d'images, le débit binaire et l'orientation vidéo. Nous vous recommandons d'appeler cette méthode pour tous les scénarios vidéo.

Remarque

Tous les paramètres définis ont des limites de plage correspondantes. Si un paramètre défini se trouve en dehors de la plage valide, le SDK l'ajuste automatiquement.

Quand appeler

Vous pouvez appeler cette méthode avant ou après avoir rejoint un canal. Si vous devez définir les propriétés d'encodage vidéo du flux de la caméra une seule fois par session, nous vous recommandons de l'appeler avant de rejoindre le canal.

Limites

Le mirrorMode de cette méthode et setVideoMirrorMode peuvent tous deux définir le miroir de publication vidéo. Nous vous recommandons d'utiliser uniquement l'une d'entre elles. L'utilisation simultanée de plusieurs méthodes peut entraîner une superposition des effets miroir, ce qui provoque des échecs ou des paramètres miroir incorrects.

Paramètres

Nom

Type

Description

config

AliEngineVideoEncoderConfiguration

Propriétés d'encodage prédéfinies. Valeurs par défaut :

  • dimensions : [640 480]

  • frameRate : 15

  • bitrate : 0

  • keyFrameInterval : L'intervalle d'images clés en millisecondes. La valeur par défaut est 0, ce qui signifie qu'il est contrôlé par le SDK.

  • forceStrictKeyFrameInterval : Indique s'il faut forcer l'encodeur à suivre strictement l'intervalle d'images clés défini pour produire des images clés. La valeur par défaut est false.

  • mirrorMode : Le miroir de publication. La valeur par défaut est AliEngineVideoMirrorModeDisabled. Voir les détails.

  • orientationMode : 0

  • rotation : 0

SetVideoDecoderConfiguration

Définit les propriétés de décodage vidéo. Cette méthode définit les propriétés de décodage vidéo du flux de la caméra, y compris les paramètres de décodage logiciel et matériel et l'activation ou non des images B.

virtual void SetVideoDecoderConfiguration(const AliEngineVideoDecoderConfiguration& config) = 0;

Quand appeler

Nous vous recommandons d'appeler cette méthode avant de rejoindre un canal et de tirer un flux.

Paramètres

Paramètre

Type

Description

config

AliEngineVideoDecoderConfiguration

Une structure qui décrit les propriétés de décodage vidéo, les propriétés principales et les valeurs par défaut.

StartPreview

Démarre l'aperçu local et active automatiquement la caméra.

virtual int StartPreview(int width = 0, int height = 0) = 0;

Cette méthode démarre l'aperçu vidéo local et active automatiquement la caméra. Pour arrêter l'aperçu local, appelez la méthode StopPreview.

Remarque

Quitter un canal à l'aide de LeaveChannel arrête automatiquement l'aperçu local. Si le flux de la caméra n'est pas publié, la caméra est automatiquement désactivée.

Quand appeler

  • Avant d'appeler cette méthode, vous devez définir une vue pour l'aperçu local via SetLocalViewConfig. Sinon, vous ne pourrez pas prévisualiser la vidéo, mais cela n'affecte pas la publication.

  • Si nécessaire, vous pouvez appeler cette méthode avant de rejoindre un canal avec JoinChannel pour démarrer l'aperçu, ce qui activera automatiquement la caméra.

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

StopPreview

Arrête l'aperçu local.

virtual int StopPreview() = 0;

Cette méthode ferme l'aperçu vidéo local et désactive la caméra. Après l'arrêt de l'aperçu, l'extrémité locale reste sur la dernière image, ce qui n'affecte pas la publication.

Remarque

Quitter un canal à l'aide de LeaveChannel arrête automatiquement l'aperçu local. Si le flux de la caméra n'est pas publié, la caméra est automatiquement désactivée.

Quand appeler

Pour arrêter l'aperçu après l'avoir démarré, vous pouvez appeler cette méthode.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

setVideoMirrorMode

Définit les capacités de miroir pour l'aperçu et la publication.

virtual int setVideoMirrorMode(AliEngineVideoPipelineMirrorMode mirrorMode) = 0;

Cette méthode définit s'il faut activer le mode miroir pour la vidéo d'aperçu local et le flux vidéo publié.

Remarque

Cette méthode a une priorité plus élevée que SetLocalViewConfig et SetVideoEncoderConfiguration. Pour définir le mode miroir vidéo, nous vous recommandons d'appeler cette méthode.

Quand appeler

Cette méthode peut être définie dynamiquement avant et après avoir rejoint un canal. Le SDK enregistre l'état et opère sur la vidéo lorsque l'aperçu et l'encodage (publication) peuvent être opérés.

Limites

Cette méthode chevauche le paramètre mirrorMode dans SetLocalViewConfig et SetVideoEncoderConfiguration. Nous vous recommandons d'utiliser uniquement cette méthode.

Paramètres

Nom

Type

Description

mirrorMode

AliEngineVideoPipelineMirrorMode

Définit le mode miroir.

Valeur de retour

  • 0 : Le paramétrage a réussi.

  • <0 : Le paramétrage a échoué.

    • AliRtcErrInner : Une erreur d'état interne du SDK. Vérifiez si l'instance SDK a été créée avec succès.

SetCapturePipelineScaleMode

Définit le moment de la mise à l'échelle de la collecte. Les données vidéo sont mises à l'échelle soit immédiatement lors de la collecte, soit pendant l'encodage.

virtual void SetCapturePipelineScaleMode(const AliEngineCapturePipelineScaleMode mode) = 0;

Cette méthode définit si la mise à l'échelle de la collecte des données vidéo se produit immédiatement lors de la collecte ou pendant l'encodage. Par exemple, lorsque la résolution de collecte est incompatible avec la résolution d'encodage, vous pouvez définir le moment de la mise à l'échelle pour déterminer si les données d'aperçu et les données publiées sont cohérentes.

Quand appeler

Cette méthode doit être définie avant d'ouvrir la caméra, par exemple avant de démarrer l'aperçu avec StartPreview ou de rejoindre un canal avec JoinChannel.

Paramètres

Nom

Type

Description

mode

AliEngineCapturePipelineScaleMode

Le mode qui contrôle le moment de la mise à l'échelle de la collecte. La valeur par défaut est la mise à l'échelle immédiate lors de la collecte.

GetCameraList

Récupère la liste des caméras.

virtual AliEngineDeviceInfoList* GetCameraList() = 0;

Valeur de retour

Un pointeur vers l'objet de liste de caméras, AliEngineDeviceInfoList*.

GetCurrentCameraName

Récupère le nom de la caméra actuellement utilisée.

virtual String GetCurrentCameraName() = 0;

Valeur de retour

Le nom du périphérique caméra actuellement utilisé.

GetCurrentCameraID

Récupère l'ID de la caméra actuellement utilisée.

virtual String GetCurrentCameraID() = 0;

Valeur de retour

L'ID de la caméra actuellement utilisée.

SetCurrentCameraName

Sélectionne une caméra par son nom.

virtual int SetCurrentCameraName(const char* cameraName) = 0;

Paramètres

Nom

Type

Description

cameraName

const char *

Le nom du périphérique.

Valeur de retour

0 pour succès, autres valeurs pour échec.

SetCurrentCameraID

Sélectionne une caméra par son ID.

virtual int SetCurrentCameraID(const char* cameraID) = 0;

Paramètres

Nom

Type

Description

cameraID

const char *

L'ID du périphérique.

Valeur de retour

0 pour succès, autres valeurs pour échec.

GetCurrentCameraSupportedResolutionList

Récupère les résolutions prises en charge.

virtual AliEngineVideoResolutionList * GetCurrentCameraSupportedResolutionList(int source) = 0 ;

Paramètres

Nom

Type

Description

source

int

Le type de périphérique.

Valeur de retour

Si la valeur n'est pas NULL, elle récupère la liste des résolutions prises en charge. NULL indique un échec.

SetExternalVideoSource

Active une source d'entrée vidéo externe.

virtual int SetExternalVideoSource(bool enable,
        AliEngineVideoTrack type,
        AliEngineRenderMode renderMode) = 0;

Paramètres

Nom

Type

Description

enable

bool

true : Activer. false : Désactiver.

type

AliEngineVideoTrack

Le type de flux.

renderMode

AliEngineRenderMode

Le mode de rendu.

PushExternalVideoFrame

Insère des données vidéo.

virtual int PushExternalVideoFrame(const AliEngineVideoRawData &frame,
        AliEngineVideoTrack type) = 0;

Paramètres

Nom

Type

Description

frame

AliEngineVideoRawData

Les données de l'image.

type

AliEngineVideoTrack

Le type de flux.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

StartPublishLiveStream

Démarre un flux en direct de contournement.

virtual int StartPublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Paramètres

Nom

Type

Description

streamUrl

const String

L'URL d'ingestion.

transcoding

AliEngineLiveTranscodingParam

Les paramètres requis pour l'ingestion de flux.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

UpdatePublishLiveStream

Met à jour les paramètres du flux en direct de contournement.

virtual int UpdatePublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Paramètres

Nom

Type

Description

streamUrl

const String

L'URL d'ingestion.

transcoding

AliEngineLiveTranscodingParam

Les paramètres requis pour l'ingestion de flux.

Valeur de retour

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

StopPublishLiveStream

Arrête le flux en direct de contournement.

virtual int StopPublishLiveStream(const String& streamURL) = 0;

Paramètres

Nom

Type

Description

streamURL

const String

L'URL d'ingestion.

Description de la réponse

0 : L'appel de méthode a réussi. Autres valeurs : L'appel de méthode a échoué.

GetPublishLiveStreamState

Récupère l'état du flux en direct de contournement.

virtual AliEngineLiveTranscodingState GetPublishLiveStreamState(const String& streamURL) = 0;

Paramètres

Paramètre

Type

Description

streamURL

const String

L'URL d'ingestion.

Description de la réponse

Renvoie l'état du flux en direct de contournement.

StartLastmileDetect

Démarre la détection de la qualité du réseau. Certains problèmes de réseau sur site peuvent entraîner l'échec des appels audio et vidéo. En appelant cette méthode, vous pouvez obtenir des informations telles que la bande passante montante et descendante, le taux de perte de paquets, la gigue et le RTT du lien pour aider à localiser et résoudre les problèmes de réseau connexes.

 virtual int StartLastmileDetect(bool uplink, bool downlink, int uplinkBandWidth, int downlinkBandWidth) = 0;

Quand appeler

Cette méthode doit être appelée avant JoinChannel. Les résultats de la détection seront fournis via un rappel. Une détection réseau peut prendre beaucoup de temps. Vous pouvez appeler StopLastmileDetect pour arrêter la détection réseau si nécessaire.

Limites

Le SDK ne peut effectuer qu'une seule détection réseau à la fois. Les appels répétés avant la fin de la détection précédente seront invalides.

Rappels associés

Après un appel réussi à cette méthode, deux rappels seront déclenchés :

Paramètres

Paramètre

Type

Description

uplink

bool

Indique s'il faut détecter le trafic montant.

downlink

bool

Indique s'il faut détecter le trafic descendant.

uplinkBandWidth

int

La bande passante maximale pour la détection montante.

downlinkBandWidth

int

La bande passante maximale pour la détection descendante.

Valeur de retour

  • 0 : L'appel de méthode a réussi.

  • <0 : L'appel de méthode a échoué. Par exemple, cela peut se produire si vous avez déjà rejoint un canal.

StopLastmileDetect

Arrête la détection de la qualité du réseau. Appelez cette méthode pour arrêter la détection de la qualité du réseau.

virtual int StopLastmileDetect() = 0;

Quand appeler

Vous pouvez appeler cette méthode après avoir créé le moteur et avant de rejoindre un canal.

Valeur de retour

  • 0 : Cette méthode a été appelée avec succès.

  • <0 : L'appel de cette méthode a échoué.

SendMediaExtensionMsg

Envoie des informations d'extension multimédia, implémentées en interne à l'aide de SEI.

virtual int SendMediaExtensionMsg(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame) = 0;

Le SDK fournit la fonction d'envoi et de réception d'informations d'extension multimédia. Le côté récepteur fait référence à AliEngineEventListener::OnMediaExtensionMsgReceived. Lorsque vous utilisez des informations d'extension multimédia, il est nécessaire de réutiliser le canal de données audio et vidéo, de sorte que la fréquence d'envoi et la longueur des données des messages personnalisés doivent être contrôlées. Les limites d'utilisation sont les suivantes :

  • Envoyez un maximum de messages fps par seconde tel que défini par le profil.

  • Pour éviter d'affecter la qualité de transmission des données multimédias, la longueur du corps du message personnalisé est limitée à 4 Ko, ce qui permet de transmettre une petite quantité de données.

  • Le paramètre repeatCount dans la fonction sendMediaExtensionMsg représente la redondance du message personnalisé. S'il est supérieur à 1, il sera envoyé plusieurs fois pour empêcher la perte de messages due à la perte de paquets réseau. Dans ce cas, les autres personnes dans la salle recevront également le même message plusieurs fois et les doublons devront être supprimés.

  • Lorsque le message personnalisé est envoyé, les abonnés dans la salle le recevront également pendant la diffusion en direct de contournement. Le définir sur -1 signifie envoyer les données en permanence, sauf si sendMediaExtensionMsg est appelé à nouveau.

  • Un seul sendMediaExtensionMsg sera envoyé à la fois. Cela signifie que l'appel à sendMediaExtensionMsg écrasera l'appel précédent à sendMediaExtensionMsg si l'appel précédent n'a pas été envoyé ou n'a pas été terminé.

Paramètres

Nom

Type

Description

message

const int8_t *

Le contenu des informations d'extension, avec une longueur maximale de 4 Ko.

length

uint32_t

La longueur des informations d'extension, avec une longueur maximale de 4 Ko (4 × 1024 octets).

repeatCount

int32_t

Le nombre de répétitions, qui représente la redondance du message, utilisé pour empêcher la perte de messages due à la perte de paquets réseau. -1 signifie un renvoi infini, sauf si SendMediaExtensionMsg est appelé à nouveau.

delay

uint32_t

Le délai en millisecondes avant l'envoi du SEI. Étant donné que le SEI est attaché au flux h264/h265 encodé, le délai réel sera légèrement plus long que le délai défini.

isKeyFrame

bool

Indique s'il faut ajouter le SEI uniquement aux images clés. Si défini sur true, les informations SEI sont ajoutées uniquement aux images clés.

Valeur de retour

  • 0 : Succès.

  • <0 : Échec. Un code d'erreur est renvoyé.

    • ERR_INNER(-1) : Une erreur interne du SDK. Cela peut se produire si le SDK n'est pas initialisé ou est appelé après sa destruction.

SendMediaExtensionMsgEx

Envoie des informations d'extension multimédia, implémentées en interne à l'aide de SEI.

virtual int SendMediaExtensionMsgEx(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame, int32_t payloadType) = 0;

Le SDK fournit la fonction d'envoi et de réception d'informations d'extension multimédia. Le côté récepteur fait référence à AliEngineEventListener::OnMediaExtensionMsgReceived. Lorsque vous utilisez des informations d'extension multimédia, il est nécessaire de réutiliser le canal de données audio et vidéo, de sorte que la fréquence d'envoi et la longueur des données des messages personnalisés doivent être contrôlées. Les limites d'utilisation sont les suivantes :

  • Envoyez un maximum de messages fps par seconde tel que défini par le profil.

  • Pour éviter d'affecter la qualité de transmission des données multimédias, la longueur du corps du message personnalisé est limitée à 4 Ko, ce qui permet de transmettre une petite quantité de données.

  • Le paramètre repeatCount dans la fonction sendMediaExtensionMsg représente la redondance du message personnalisé. S'il est supérieur à 1, il sera envoyé plusieurs fois pour empêcher la perte de messages due à la perte de paquets réseau. Dans ce cas, les autres personnes dans la salle recevront également le même message plusieurs fois et les doublons devront être supprimés.

  • Lorsque le message personnalisé est envoyé, les abonnés dans la salle le recevront également pendant la diffusion en direct de contournement. Le définir sur -1 signifie envoyer les données en permanence, sauf si sendMediaExtensionMsg est appelé à nouveau.

  • Un seul sendMediaExtensionMsg sera envoyé à la fois. Cela signifie que l'appel à sendMediaExtensionMsg écrasera l'appel précédent à sendMediaExtensionMsg si l'appel précédent n'a pas été envoyé ou n'a pas été terminé.

Paramètres

Nom

Type

Description

message

const int8_t *

Le contenu des informations d'extension, avec une longueur maximale de 4 Ko.

length

uint32_t

La longueur des informations d'extension, avec une longueur maximale de 4 Ko (4 × 1024 octets).

repeatCount

int32_t

Le nombre de répétitions, qui représente la redondance du message, utilisé pour empêcher la perte de messages due à la perte de paquets réseau. -1 signifie un renvoi infini, sauf si SendMediaExtensionMsg est appelé à nouveau.

delay

uint32_t

Le délai en millisecondes avant l'envoi du SEI. Étant donné que le SEI est attaché au flux h264/h265 encodé, le délai réel sera légèrement plus long que le délai défini.

isKeyFrame

bool

Indique s'il faut ajouter le SEI uniquement aux images clés. Si défini sur true, les informations SEI sont ajoutées uniquement aux images clés.

payloadType

int32_t

Le champ de type de données. payload=5 payload=[100..254].

Valeur de retour

  • 0 : Succès.

  • <0 : Échec. Un code d'erreur est renvoyé.

    • ERR_INNER(-1) : Une erreur interne du SDK. Cela peut se produire si le SDK n'est pas initialisé ou est appelé après sa destruction.

OnConnectionStatusChange

Rappel pour les changements d'état de la connexion réseau.

virtual void OnConnectionStatusChange(int status, int reason) {};

Paramètres

Paramètre

Type

Description

status

AliEngineConnectionStatus

La valeur d'état actuelle.

reason

AliEngineConnectionStatusChangeReason

La raison spécifique du changement d'état.

OnLocalDeviceException

Rappel pour les exceptions de périphérique sur site. Les clients doivent prêter attention à ce rappel.

virtual void OnLocalDeviceException(AliEngineLocalDeviceType deviceType, AliEngineLocalDeviceExceptionType exceptionType, const char* msg){};

Paramètres

Paramètre

Type

Description

deviceType

AliEngineLocalDeviceType

Le type d'appareil.

exceptionType

AliEngineLocalDeviceExceptionType

Le type d'exception de l'appareil.

msg

const char*

Les informations associées à l'exception.

OnAuthInfoWillExpire

Notification indiquant que les informations d'authentification de l'utilisateur sont sur le point d'expirer. L'authentification expirera 30 secondes après la réception de cette notification. Les clients doivent prêter attention à ce rappel.

virtual void OnAuthInfoWillExpire() {};

Ce rappel indique que les informations d'authentification de l'utilisateur sont sur le point d'expirer. L'authentification expirera 30 secondes après la réception de ce rappel. Vous devez obtenir un nouveau jeton, puis mettre à jour les informations d'authentification en utilisant l'une des méthodes suivantes :

  • Appelez la méthode RefreshAuthInfo pour mettre à jour les informations d'authentification.

  • Appelez LeaveChannel pour quitter le canal actuel, puis appelez JoinChannel pour rejoindre à nouveau le canal.

Déclenchement

Le SDK déclenche ce rappel 30 secondes avant l'expiration des informations d'authentification de l'utilisateur. Vous devez mettre à jour les informations d'authentification rapidement après avoir reçu ce rappel.

OnAuthInfoExpired

L'utilisateur appelle une interface nécessitant une authentification et le serveur renvoie que les informations ont expiré.

virtual void OnAuthInfoExpired() {};

Ce rappel indique que les informations d'authentification de l'utilisateur ont expiré. Si vous souhaitez poursuivre la session, vous devez générer un nouveau jeton sur le serveur, puis mettre à jour les informations d'authentification en utilisant la méthode suivante :

  • Appelez LeaveChannel pour quitter le canal actuel, puis appelez JoinChannel pour rejoindre à nouveau le canal.

Déclenchement

Ce rappel est déclenché lorsque les informations d'authentification de l'utilisateur expirent.

OnJoinChannelResult

Rappel pour le résultat de la jonction à un canal. Ce rappel équivaut à l'opération de blocage lors de l'appel de la méthode JoinChannel, qui gère les événements après la jonction au canal. Choisissez l'une ou l'autre option.

virtual void OnJoinChannelResult(int result, const char *channel, const char *userId, int elapsed) {}

Conditions de déclenchement

Lorsque l'application appelle la méthode JoinChannel, ce rappel indique si la jonction au canal a réussi et renvoie des informations sur la jonction ainsi que le temps nécessaire pour rejoindre le canal.

Paramètres

Paramètre

Type

Description

result

int

Le résultat de la jonction au canal. La valeur 0 est renvoyée en cas de succès. Un code d'erreur est renvoyé en cas d'échec. Pour plus d'informations, consultez la liste des codes d'erreur. Voici quelques codes d'erreur courants :

  • ERR_JOIN_BAD_APPID : L'AppId n'existe pas.

  • ERR_JOIN_INVALID_APPID : L'AppId a expiré.

  • ERR_JOIN_BAD_CHANNEL : Le canal n'existe pas.

  • ERR_JOIN_INVALID_CHANNEL : Le canal a expiré.

  • ERR_JOIN_BAD_TOKEN : Le jeton n'existe pas.

  • ERR_JOIN_TIMEOUT : Le délai de jonction au canal est dépassé.

  • ERR_JOIN_BAD_PARAM : Les paramètres de jonction au canal sont incorrects.

  • ERR_JOIN_FAILED : Échec de la jonction au canal.

  • ERR_JOIN_CONFIG_INVALID : Les paramètres de jonction ne sont pas valides, par exemple un jeton vide.

channel

const char *

L'ID du canal rejoint.

userId

const char *

L'ID de l'utilisateur qui a rejoint le canal.

elapsed

int

Le temps nécessaire pour rejoindre le canal.

OnLeaveChannelResult

Rappel pour le résultat de la sortie d'un canal. Ce rappel est renvoyé après l'appel de la méthode LeaveChannel. Si vous appelez Destroy immédiatement après cet appel, vous ne recevrez pas ce rappel.

virtual void OnLeaveChannelResult(int result, AliEngineStats stats) {}

Conditions de déclenchement

Lorsque l'application appelle avec succès LeaveChannel pour quitter le canal, ce rappel est déclenché pour renvoyer le résultat de la sortie et les statistiques de cette session de canal.

Remarque

Si vous appelez Destroy pour détruire le moteur immédiatement après LeaveChannel, ce rappel ne sera pas déclenché.

Paramètres

Paramètre

Type

Description

result

int

Le résultat de la sortie du canal. La valeur 0 est renvoyée en cas de succès et un code d'erreur est renvoyé en cas d'échec.

stats

AliEngineStats

Un résumé des statistiques de données pour cette session de canal.

OnRemoteUserOffLineNotify

Rappel lorsqu'un utilisateur distant se déconnecte.

virtual void OnRemoteUserOffLineNotify(const char *uid, AliEngineUserOfflineReason reason) {}

Ce rappel informe l'utilisateur local qu'un utilisateur distant a quitté le canal pour diverses raisons. Lorsqu'un utilisateur distant se déconnecte, cette méthode est déclenchée.

Conditions de déclenchement

  • Le rappel est déclenché lorsqu'un utilisateur distant quitte activement le canal.

  • Un rappel est déclenché lorsqu'un diffuseur distant appelle <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="03e45f655fcxx">SetClientRole</a> pour changer son rôle en spectateur (défini sur AliEngineClientRoleLive).

  • Le rappel est déclenché lorsqu'aucune donnée n'est reçue du diffuseur distant pendant une longue période et qu'il est considéré comme déconnecté.

Paramètres

Paramètre

Type

Description

uid

const char *

L'identifiant unique attribué à l'ID utilisateur depuis le serveur d'application.

reason

AliEngineUserOfflineReason

La raison pour laquelle l'utilisateur s'est déconnecté.

OnRemoteUserOnLineNotify

Rappel lorsqu'un utilisateur distant se connecte.

virtual void OnRemoteUserOnLineNotify(const char *uid, int elapsed) {}

Cette méthode informe le client local qu'un utilisateur distant a rejoint le canal.

Conditions de déclenchement

  • Un utilisateur distant rejoint le canal avec succès.

  • Après que l'utilisateur actuel ait rejoint le canal, il recevra un rappel de jonction pour les utilisateurs déjà présents dans le canal. Cela permet d'afficher les utilisateurs précédemment connectés.

Paramètres

Paramètre

Type

Description

uid

const char *

L'identifiant unique attribué à l'ID utilisateur depuis le serveur d'application.

elapsed

int

Le temps nécessaire à l'utilisateur pour rejoindre le canal.

OnRemoteTrackAvailableNotify

Rappel lorsque le flux d'un utilisateur distant change.

virtual void OnRemoteTrackAvailableNotify(const char *uid,
                                                  AliEngineAudioTrack audioTrack,
                                                  AliEngineVideoTrack videoTrack) {}

Ce rappel est déclenché lorsque l'état de publication d'un utilisateur distant change. Grâce à ce rappel, vous pouvez savoir en temps réel si un utilisateur distant publie des flux audio et vidéo. Vous pouvez ensuite afficher ou masquer les informations audio et vidéo de l'utilisateur distant sur l'interface utilisateur en conséquence.

Conditions de déclenchement

Ce rappel est déclenché dans les scénarios suivants :

  • Lorsqu'un utilisateur distant passe de l'état non publié à l'état publié (y compris audio et vidéo).

  • Lorsqu'un utilisateur distant passe de l'état publié à l'état non publié (y compris audio et vidéo).

  • En mode de diffusion interactive, lorsqu'un utilisateur distant appelle SetClientRole pour passer du rôle de spectateur à celui de diffuseur et définit également la publication, ce rappel est déclenché.

Prenons la vidéo comme exemple : supposons qu'un utilisateur distant soit configuré pour ne pas publier. Dans ce cas, ce rappel ne sera pas déclenché.

  • Lorsque l'utilisateur distant commence à publier le flux de la caméra (état de publication : aucun flux vidéo -> uniquement le flux de la caméra), le rappel local renvoie AliEngineVideoTrackCamera, ce qui indique que le flux de la caméra de l'utilisateur distant est disponible.

  • Lorsque l'utilisateur distant publie également le flux de partage d'écran (état de publication : uniquement le flux de la caméra -> flux de la caméra et flux de partage d'écran), le rappel local renvoie AliEngineVideoTrackBoth, ce qui indique que le flux de la caméra et le flux de partage d'écran de l'utilisateur distant sont disponibles.

  • Lorsque l'utilisateur distant arrête de publier le flux de la caméra et ne conserve que le flux de partage d'écran (état de publication : flux de la caméra et flux de partage d'écran -> uniquement le flux de partage d'écran), le rappel local renvoie AliEngineVideoTrackScreen, ce qui indique que seul le flux de partage d'écran est actuellement disponible.

  • Lorsque l'utilisateur distant arrête de publier le flux de partage d'écran (état de publication : uniquement le flux de partage d'écran -> aucun flux vidéo), le rappel local renvoie AliEngineVideoTrackNo, ce qui indique qu'aucun flux vidéo n'est actuellement disponible.

Remarque

Ce rappel renvoie l'état de publication de l'utilisateur distant. Pour savoir quel flux s'est déconnecté lors de ce changement, vous devez enregistrer les changements d'état avant et après le rappel.

Paramètres

Paramètre

Type

Description

uid

const char *

L'identifiant unique attribué à l'ID utilisateur depuis le serveur d'application.

audioTrack

AliEngineAudioTrack

Le flux audio de l'utilisateur distant après le changement.

videoTrack

AliEngineVideoTrack

Le flux vidéo de l'utilisateur distant après le changement.

OnBye

Rappel lorsque l'utilisateur est expulsé par le serveur ou que le canal est fermé.

virtual void OnBye(int code) {}

Lorsqu'un utilisateur est déconnecté pour une raison quelconque ou que le canal est fermé, ce rappel est déclenché. Vous pouvez utiliser le paramètre de rappel code pour identifier la raison de la déconnexion et la traiter en conséquence.

Conditions de déclenchement

  • L'utilisateur actuel est expulsé par le serveur.

  • Le canal est fermé (le serveur supprime activement le canal).

  • Départ passif, qui nécessite que le client tente de restaurer la session ou de se reconnecter.

Paramètres

Paramètre

Type

Description

code

int

Le type de message. Valeurs :

  • 1 : Expulsé par le serveur.

  • 2 : Canal fermé.

  • 3 : Le même ID utilisateur s'est connecté sur un autre appareil et a été expulsé par le serveur.

OnAudioPublishStateChanged

Rappel pour les changements de publication audio.

virtual void OnAudioPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Ce rappel écoute les changements d'état de publication du flux audio de l'utilisateur local.

Conditions de déclenchement

Lorsque l'état de publication audio de l'utilisateur change, par exemple :

  • Arrêt de la publication.

  • Appel de <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="904fc4e83a35n">SetClientRole</a> pour passer au rôle de spectateur.

Paramètres

Paramètre

Type

Description

oldState

AliEnginePublishState

L'état de publication précédent.

newStat

AliEnginePublishState

L'état de publication actuel.

elapseSinceLastState

int

L'intervalle de temps depuis le changement d'état, en millisecondes.

channel

const char *

L'ID du canal actuel.

OnAudioSubscribeStateChanged

Rappel pour les changements d'abonnement audio.

virtual void OnAudioSubscribeStateChanged(const char *uid,
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Ce rappel informe l'utilisateur local des changements d'état d'abonnement au flux audio de l'utilisateur distant. Grâce à ce rappel, vous pouvez connaître le changement d'état d'abonnement au flux de la caméra d'un utilisateur distant et l'intervalle de temps entre l'état précédent et l'état actuel.

Paramètres

Paramètre

Type

Description

uid

NSString *_Nonnull

L'ID utilisateur dont l'abonnement a changé.

oldState

AliEngineSubscribeState

L'état d'abonnement précédent.

newState

AliEngineSubscribeState

L'état d'abonnement actuel.

elapseSinceLastState

int

L'intervalle de temps depuis le changement d'état, en millisecondes.

channel

const char *

L'ID du canal actuel.

OnUserAudioMuted

Notification indiquant qu'un utilisateur a coupé son audio.

virtual void OnUserAudioMuted(const char* uid, bool isMute) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur qui a exécuté MuteAudio.

isMute

bool

true : Coupé. false : Non coupé.

OnUserAudioInterruptedBegin

Notification indiquant que l'audio d'un utilisateur a été interrompu. Cela se produit généralement dans des scénarios où l'audio est préempté, comme lors d'un appel téléphonique.

virtual void OnUserAudioInterruptedBegin(const char* uid) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur dont l'audio a été interrompu.

OnUserAudioInterruptedEnded

Notification indiquant que l'interruption audio d'un utilisateur est terminée. Cela correspond à OnUserAudioInterruptedBegin.

virtual void OnUserAudioInterruptedEnded(const char* uid) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur dont l'interruption audio est terminée.

OnVideoPublishStateChanged

Rappel pour les changements de publication vidéo.

virtual void OnVideoPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Ce rappel écoute les changements d'état de publication vidéo de l'utilisateur local.

Paramètres

Paramètre

Type

Description

oldState

AliEnginePublishState

L'état de publication précédent.

newState

AliEnginePublishState

L'état de publication actuel.

elapseSinceLastState

int

L'intervalle de temps depuis le changement d'état, en millisecondes.

channel

const char *

L'ID du canal actuel.

OnVideoSubscribeStateChanged

Rappel pour les changements d'abonnement au flux de la caméra.

virtual void OnVideoSubscribeStateChanged(const char *uid, 
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Ce rappel informe l'utilisateur local des changements d'état d'abonnement au flux de la caméra de l'utilisateur distant. Grâce à ce rappel, vous pouvez connaître le changement d'état d'abonnement au flux de la caméra d'un utilisateur distant et l'intervalle de temps entre l'état précédent et l'état actuel.

Rappels associés

Les flux vidéo incluent principalement les flux de la caméra et les flux de partage d'écran. Cette méthode concerne les changements d'état d'abonnement au flux de la caméra. La méthode de rappel associée pour les flux de partage d'écran est OnScreenShareSubscribeStateChanged.

Paramètres

Paramètre

Type

Description

uid

const char *

L'ID utilisateur dont l'abonnement a changé.

oldState

AliEngineSubscribeState

L'état d'abonnement précédent.

newState

AliEngineSubscribeState

L'état d'abonnement actuel.

elapseSinceLastState

int

L'intervalle de temps depuis le changement d'état, en millisecondes.

channel

const char *

L'ID du canal actuel.

OnUserVideoMuted

Notification indiquant qu'un utilisateur a coupé sa vidéo.

virtual void OnUserVideoMuted(const char* uid, bool isMute) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur qui a exécuté muteVideo.

isMute

bool

true : Publication d'images noires. false : Publication normale.

OnUserVideoEnabled

Notification indiquant que la capture vidéo locale a été désactivée ou réactivée.

virtual void OnUserVideoEnabled(const char* uid, bool isEnable) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur qui a exécuté EnableLocalVideo.

isMute

bool

true : La capture du flux de la caméra est activée. false : La capture du flux de la caméra est désactivée.

OnUserWillResignActive

Rappel lorsque l'application d'un utilisateur distant passe en arrière-plan.

virtual void OnUserWillResignActive(const char* uid) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur dont l'application est passée en arrière-plan.

OnUserWillBecomeActive

Rappel lorsque l'application d'un utilisateur distant revient au premier plan.

virtual void OnUserWillBecomeActive(const char* uid) {}

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID utilisateur de l'utilisateur dont l'application est revenue au premier plan.

OnStats

Rappel de données en temps réel. Ceci est déclenché toutes les 2 secondes.

virtual void OnStats(const AliEngineStats& stats) {}

Paramètres

Paramètre

Type

Description

stats

AliEngineStats

Le rappel de données.

OnLocalVideoStats

Statistiques vidéo locales. Ceci est déclenché toutes les 2 secondes.

virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);

Informations sur les paramètres

Paramètre

Type

Description

localVideoStats

const AliEngineLocalVideoStats&

Statistiques vidéo locales, y compris le débit binaire, la fréquence d'images et d'autres informations.

OnRemoteVideoStats

Statistiques vidéo distantes. Ceci est déclenché toutes les 2 secondes.

virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);

Informations sur les paramètres

Paramètre

Type

Description

remoteVideoStats

const AliEngineRemoteVideoStats&

Statistiques vidéo distantes, y compris l'ID utilisateur distant, la fréquence d'images, les saccades et d'autres informations.

OnLocalAudioStats

Statistiques audio locales. Ceci est déclenché toutes les 2 secondes.

virtual void OnLocalAudioStats(const AliEngineLocalAudioStats& localAudioStats);

Informations sur les paramètres

Paramètre

Type

Description

localAudioStats

const AliEngineLocalAudioStats&

Statistiques audio locales, y compris la fréquence d'échantillonnage, le nombre de canaux sonores, etc.

OnRemoteAudioStats

Statistiques audio distantes. Ceci est déclenché toutes les 2 secondes.

virtual void OnRemoteAudioStats(const AliEngineRemoteAudioStats& remoteAudioStats);

Informations sur les paramètres

Paramètre

Type

Description

remoteAudioStats

const AliEngineRemoteAudioStats&

Statistiques audio distantes, incluant le taux de perte de paquets, le taux de saccades, etc.

OnMediaExtensionMsgReceived

Rappel pour la réception d'informations d'extension multimédia. Lorsqu'une extrémité envoie des informations via SendMediaExtensionMsg, l'autre extrémité reçoit les données via ce rappel.

virtual void OnMediaExtensionMsgReceived(const char* uid, const uint8_t payloadType, const int8_t * message, uint32_t size);

Lorsqu'une extrémité envoie des informations via sendMediaExtensionMsg, l'autre extrémité reçoit les données via ce rappel.

Paramètres

Paramètre

Type

Description

uid

const char*

L'userId de l'utilisateur émetteur.

payloadType

const uint8_t

Le type de charge utile. sendMediaExtensionMsg renvoie 5. sendMediaExtensionMsgEx renverra le type spécifique.

message

const int8_t *

Le contenu des informations d'extension.

size

uint32_t

La longueur des informations d'extension.

OnSnapshotComplete

Rappel pour le résultat de la capture d'écran. Lorsqu'un utilisateur appelle avec succès SnapshotVideo, le résultat de la capture d'écran est renvoyé via ce rappel.

virtual void OnSnapshotComplete(const char* userId, AliEngineVideoTrack videoTrack, void* buffer, int width, int height, bool success);

Paramètres

Paramètre

Type

Description

userId

const char*

L'ID utilisateur, indiquant de quel utilisateur le flux vidéo a été capturé.

videoTrack

AliEngineVideoTrack

Le type de vidéo capturée, tel que le flux de la caméra ou le flux de partage d'écran.

buffer

void*

En cas de succès, renvoie les données d'image de la capture d'écran. Le format d'image est RGBA. En cas d'échec, renvoie nullptr.

width

int

La largeur de la capture d'écran.

height

int

La hauteur de la capture d'écran.

success

bool

Indique si la capture d'écran a réussi.

  • true : La capture d'écran a réussi.

  • false : La capture d'écran a échoué.

OnLocalAudioStateChange

Rappel pour l'état du dispositif audio local.

virtual void OnLocalAudioStateChange(AliEngineLocalAudioStateType state, const char* msg);

Paramètres

Paramètre

Type

Description

state

AliEngineLocalAudioStateType

L'état actuel du dispositif audio, par exemple en cours de démarrage ou démarré.

msg

const char*

Description du changement d'état du dispositif.

onLocalVideoStateChanged

Rappel pour l'état du dispositif vidéo local.

virtual void onLocalVideoStateChanged(AliEngineLocalVideoStateType state, const char* msg);

Paramètres

Paramètre

Type

Description

state

AliEngineLocalVideoStateType

L'état actuel du dispositif vidéo, par exemple en cours de démarrage ou démarré.

msg

const char*

Description du changement d'état du dispositif.

OnRemoteUserSubscribedDataChannel

Rappel indiquant que vous pouvez commencer à envoyer des messages via le canal de données.

virtual void OnRemoteUserSubscribedDataChannel(const char* uid);

Cette méthode est un rappel déclenché lorsqu'un utilisateur distant s'abonne au canal de données. Ce rappel informe l'utilisateur local que l'utilisateur distant spécifié est prêt à recevoir des messages personnalisés. Vous pouvez alors appeler SendDataChannelMessage en toute sécurité pour leur envoyer des données. Ce mécanisme est essentiel pour garantir une livraison fiable des messages et éviter la perte de paquets ou les échecs lors de l'envoi de messages à un utilisateur cible qui n'est pas abonné au canal de données.

Remarque

Ce rappel n'est déclenché que dans les scénarios IA.

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

OnDataChannelMessage

Rappel pour les messages du canal de données.

virtual void OnDataChannelMessage(const char* uid, const AliEngineDataChannelMsg& msg);

Le SDK ARTC permet d'envoyer et de recevoir des messages personnalisés. Cela vous permet d'envoyer des données de messages en temps réel personnalisées tout en transmettant des données audio et vidéo. Par exemple, vous pouvez appeler cette méthode pour transmettre des instructions de contrôle en temps réel, des données de synchronisation d'état ou d'autres messages métier conjointement avec l'audio et la vidéo. Pour plus d'informations, consultez Envoyer et recevoir des messages personnalisés.

Remarque
  • Dans les scénarios interactifs, le rôle de streamer peut envoyer et recevoir des messages, tandis que le rôle de spectateur prend uniquement en charge la réception de messages.

  • Cette fonctionnalité est désactivée par défaut. Pour l'activer, après avoir créé le moteur, appelez <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="327b69c0ee1wh">SetParameter</a> pour définir {\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}.

  • ARTC DataChannel dépend de la connectivité des flux audio et vidéo : l'envoi de messages nécessite une diffusion active du flux, et la réception de messages nécessite une extraction active du flux. La communication bidirectionnelle est conditionnée par les flux audio et vidéo.

Conditions de déclenchement

Après que l'émetteur a appelé SendDataChannelMessage pour envoyer un message personnalisé, si le destinataire a activé la fonctionnalité de canal de données, ce rappel est déclenché côté destinataire.

Paramètres

Paramètre

Type

Description

uid

const char*

L'ID de l'utilisateur émetteur.

msg

const AliEngineDataChannelMsg&

Le message du canal de données.

OnCapturedAudioFrame

Rappel pour les données audio brutes collectées.

virtual bool OnCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Ce rappel récupère les données audio brutes collectées par le dispositif actuel. Il est désactivé par défaut. Pour récupérer ces données audio :

  • Activez ce rappel via audioSource dans EnableAudioFrameObserver(true,audioSource,config). Le paramètre config permet également de définir la fréquence d'échantillonnage, le nombre de canaux audio et le mode lecture/écriture pour les données audio.

  • Appelez RegisterAudioFrameObserver pour enregistrer l'objet de réception des données audio.

Remarque

Cette méthode prend en charge la définition de la fréquence d'échantillonnage, du nombre de canaux audio et du mode lecture/écriture.

Paramètres

Paramètre

Type

Description

audioRawData

AliEngineAudioRawData

Les données audio.

Valeur de retour

  • true : Succès.

  • false : Échec.

OnProcessCapturedAudioFrame

Rappel pour les données après traitement 3A.

virtual bool OnProcessCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Ce rappel récupère les données audio après qu'elles ont été traitées par le module 3A. Il est désactivé par défaut. Pour récupérer ces données audio :

  • Activez ce rappel via audioSource dans EnableAudioFrameObserver(true,audioSource,config). Le paramètre config permet également de définir la fréquence d'échantillonnage, le nombre de canaux audio et le mode lecture/écriture pour les données audio.

  • Appelez RegisterAudioFrameObserver pour enregistrer l'objet de réception des données audio.

Remarque

Cette méthode prend en charge la définition de la fréquence d'échantillonnage, du nombre de canaux audio et du mode lecture/écriture.

Paramètres

Paramètre

Type

Description

audioRawData

AliEngineAudioRawData

Les données audio.

Valeur de retour

  • true : Succès.

  • false : Échec.

OnPublishAudioFrame

Rappel pour les données publiées.

virtual bool OnPublishAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Ce rappel récupère les données audio publiées. Il est désactivé par défaut. Pour récupérer ces données audio :

  • Activez ce rappel via audioSource dans EnableAudioFrameObserver(true,audioSource,config). Le paramètre config permet également de définir la fréquence d'échantillonnage, le nombre de canaux audio et le mode lecture/écriture pour les données audio.

  • Appelez RegisterAudioFrameObserver pour enregistrer l'objet de réception des données audio.

Remarque

Cette méthode prend en charge la définition de la fréquence d'échantillonnage et du nombre de canaux audio, mais ne peut être configurée qu'en mode lecture seule.

Paramètres

Paramètre

Type

Description

audioRawData

AliEngineAudioRawData

Les données audio.

Valeur de retour

  • true : Succès.

  • false : Échec.

OnPlaybackAudioFrame

Rappel pour les données de lecture.

virtual bool OnPlaybackAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Ce rappel récupère les données audio de lecture. Il est désactivé par défaut. Pour récupérer ces données audio :

  • Activez ce rappel via audioSource dans EnableAudioFrameObserver(true,audioSource,config). Le paramètre config permet également de définir la fréquence d'échantillonnage, le nombre de canaux audio et le mode lecture/écriture pour les données audio.

  • Appelez RegisterAudioFrameObserver pour enregistrer l'objet de réception des données audio.

Remarque

Cette méthode prend en charge la définition de la fréquence d'échantillonnage, du nombre de canaux audio et du mode lecture/écriture.

Limites

N'effectuez aucune opération longue dans cette fonction de rappel. Sinon, cela pourrait provoquer des anomalies sonores.

Paramètres

Paramètre

Type

Description

audioRawData

AliEngineAudioRawData

Les données audio.

Valeur de retour

  • true : Succès.

  • false : Échec.

OnRemoteUserAudioFrame

Rappel pour les données du flux distant extrait.

virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0; 

Ce rappel récupère les données audio distantes d'un utilisateur spécifié en cours d'extraction. Il est désactivé par défaut. Pour récupérer ces données audio :

  • Activez ce rappel via audioSource dans EnableAudioFrameObserver(true,audioSource,config). Le paramètre config permet également de définir la fréquence d'échantillonnage, le nombre de canaux audio et le mode lecture/écriture pour les données audio.

  • Appelez RegisterAudioFrameObserver pour enregistrer l'objet de réception des données audio.

Remarque

Cette méthode ne prend pas en charge la définition de la fréquence d'échantillonnage ou du nombre de canaux audio, mais vous pouvez définir le mode lecture/écriture.

Limites

N'effectuez aucune opération longue dans cette fonction de rappel. Sinon, cela pourrait provoquer des anomalies sonores.

Paramètres

Paramètre

Type

Description

uid

const char *

L'ID de l'utilisateur distant.

audioRawData

AliEngineAudioRawData

Les données audio.

Valeur de retour

  • true : Succès.

  • false : Échec.

OnCaptureVideoSample

Rappel pour les données vidéo locales collectées.

virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Cette méthode est un rappel permettant de récupérer les données de collecte vidéo locales. Elle sert à extraire les trames vidéo brutes (telles que les données YUV) collectées par la caméra locale. Vous pouvez utiliser ce rappel pour implémenter une logique de traitement vidéo personnalisée (comme l'ajout de filtres, de filigranes ou le transcodage) et décider si les données traitées doivent être renvoyées au SDK pour l'encodage ou le rendu ultérieur. Pour envoyer la vidéo traitée au SDK, renvoyez true.

Conditions de déclenchement

Après avoir appelé avec succès <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#0873ceb145h0t" id="c9469a35210sg">RegisterVideoSampleObserver</a> pour enregistrer l'observateur de données vidéo, le SDK capture la trame vidéo correspondante.

Paramètres

Paramètre

Type

Description

videoSource

AliEngineVideoSource

La source des données vidéo.

videoRawData

AliEngineVideoRawData

Les données vidéo brutes.

Description de la réponse

  • true : Doit être réécrit dans le SDK (valide uniquement pour I420 et natif (iOS/macOS)).

  • false : Ne doit pas être réécrit dans le SDK.

OnPreEncodeVideoSample

Rappel pour les données vidéo locales avant encodage.

virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Cette méthode est un rappel permettant de récupérer les données vidéo locales avant encodage. Elle sert à extraire les données vidéo brutes (telles que le format YUV) avant que le SDK n'encode la trame vidéo. Vous pouvez utiliser ce rappel pour implémenter une logique de traitement personnalisée (comme l'ajout de filigranes, l'ajustement des couleurs ou le transcodage) et décider si les données traitées doivent être renvoyées au SDK pour l'encodage ultérieur.

Paramètres

Paramètre

Type

Description

videoSource

AliEngineVideoSource

La source des données vidéo.

videoRawData

AliEngineVideoRawData

Les données vidéo.

Valeur de retour

  • true : Doit être réécrit dans le SDK (valide uniquement pour I420 et natif (iOS/macOS)).

  • false : Ne doit pas être réécrit dans le SDK.

OnRemoteVideoSample

Rappel pour les données vidéo distantes abonnées.

virtual bool OnRemoteVideoSample(const char *uid, AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Cette méthode est un rappel permettant de récupérer les données vidéo distantes abonnées. Elle sert à extraire les données de trames vidéo brutes (telles que le format YUV) d'un utilisateur distant. Vous pouvez utiliser ce rappel pour implémenter une logique de traitement personnalisée (comme l'ajout de filtres, de filigranes ou le transcodage) et décider si les données traitées doivent être renvoyées au SDK pour le rendu ultérieur.

Paramètres

Paramètre

Type

Description

uid

const char *

L'ID de l'utilisateur distant.

videoSource

AliEngineVideoSource

La source des données vidéo.

videoRawData

AliEngineVideoRawData

Les données vidéo brutes.

Valeur de retour

  • true : Doit être réécrit dans le SDK.

  • false : Ne doit pas être réécrit dans le SDK.

GetVideoAlignment

Alignement de la largeur de sortie vidéo.

virtual AliEngineVideoObserAlignment GetVideoAlignment();

Valeur de retour

L'alignement attendu de la largeur de sortie vidéo. Consultez AliEngineVideoObserAlignment.

GetObservedFramePosition

Contenu de sortie des données vidéo.

virtual uint32_t GetObservedFramePosition();

Valeur de retour

Le contenu de sortie vidéo attendu. Consultez AliEngineVideoObserPosition.

onDestroyCompletion

Rappel indiquant la fin de l'opération de destruction.

virtual void onDestroyCompletion();

Ce rappel indique que l'instance du moteur SDK a été détruite et qu'une nouvelle instance peut être créée.

Conditions de déclenchement

Ce rappel est déclenché après la destruction du moteur lorsque l'utilisateur appelle Destroy.

Remarque

Attendez le rappel onDestroyCompletion avant d'exécuter d'autres méthodes pour éviter de bloquer le thread principal.

OnAudioEffectFinished

Rappel indiquant la fin de la lecture d'un effet sonore local.

virtual void OnAudioEffectFinished(int soundId) {}

Paramètre

Type

Description

soundId

int

L'ID de l'effet sonore dont la lecture est terminée.

OnAudioVolumeCallback

Rappel pour le volume audio abonné, l'état vocal et l'UID.

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

Ce rappel est désactivé par défaut. Vous pouvez l'activer en appelant la méthode <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="9e5f7dfbe43ze">EnableAudioVolumeIndication</a>. Une fois activé, le SDK déclenche ce rappel à l'intervalle spécifié dans <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="ebd7f2147ar4d">EnableAudioVolumeIndication</a> après que vous avez rejoint un canal avec une diffusion de flux active. Le résultat du rappel contient les informations de volume pour les locuteurs locaux et distants.

Paramètres

Paramètre

Type

Description

volumeInfo

AliEngineUserVolumeInfo*

Un tableau d'informations sur le volume des utilisateurs, incluant l'UID de l'utilisateur, l'état vocal et le volume.

  • Un UID de 0 indique le locuteur local.

  • Un UID de 1 indique le volume mixé de tous les utilisateurs distants.

  • Les autres valeurs indiquent les informations de volume de l'utilisateur distant spécifié.

volumeInfoCount

int

Le nombre d'éléments dans le tableau d'informations sur le volume des utilisateurs.

totalVolume

int

Le volume total après mixage. La plage est [0 255]. Dans le rappel de l'utilisateur local, totalVolume correspond au volume de l'utilisateur local après mixage. Dans le rappel de l'utilisateur distant, totalVolume correspond au volume total de tous les locuteurs après mixage.

OnActiveSpeaker

Rappel pour le locuteur actif.

virtual void OnActiveSpeaker(const char *uid) {}

Après avoir appelé avec succès <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="b5e0ba1248tmp">EnableAudioVolumeIndication</a>, le SDK surveille en continu l'utilisateur distant ayant le volume le plus élevé. L'utilisateur distant identifié comme le plus fort le plus grand nombre de fois au cours de la période actuelle est considéré comme le locuteur actif.

Conditions de déclenchement

Lorsque le nombre d'utilisateurs dans le canal est supérieur ou égal à 2 et qu'il y a un utilisateur distant actif, le SDK déclenche ce rappel et signale l'UID de l'utilisateur distant le plus actif.

  • Si l'utilisateur distant le plus actif reste toujours le même, le SDK ne déclenche pas à nouveau le rappel OnActiveSpeaker.

  • Si l'utilisateur distant le plus actif change, le SDK déclenche à nouveau ce rappel et signale l'UID du nouvel utilisateur distant le plus actif.

Paramètres

Paramètre

Type

Description

uid

const char *

L'ID de la personne qui parle actuellement.

OnPublishLiveStreamStateChanged

Rappel pour les changements d'état de la publication de diffusion en direct.

virtual void OnPublishLiveStreamStateChanged(const char* streamUrl ,AliEngineLiveTranscodingState state ,AliEngineLiveTranscodingErrorCode errCode){};

Paramètres

Paramètre

Type

Description

streamURL

const char*

L'URL du flux.

state

AliEngineLiveTranscodingState

L'état.

errCode

AliEngineLiveTranscodingErrorCode

Le code d'erreur.

OnPublishTaskStateChanged

Rappel pour les changements d'état de la tâche de publication.

virtual void OnPublishTaskStateChanged(const char* streamUrl, AliEngineTrascodingPublishTaskStatus state){};

Paramètres

Paramètre

Type

Description

streamURL

const char*

L'URL du flux.

state

AliEngineTrascodingPublishTaskStatus

L'état.

OnNetworkQualityChanged

Rappel pour les changements de qualité réseau. Déclenché lorsque la qualité du réseau change.

virtual void OnNetworkQualityChanged(const char *uid, AliEngineNetworkQuality upQuality, AliEngineNetworkQuality downQuality);

Paramètres

Parameter

Type

Description

uid

char*

L'UID de l'utilisateur dont la qualité du réseau a changé.

Remarque

Un UID vide indique que la qualité du réseau de l'utilisateur lui-même a changé.

upQuality

AliEngineNetworkQuality

Le niveau de qualité du réseau en amont.

downQuality

AliEngineNetworkQuality

Le niveau de qualité du réseau en aval.

OnLastmileDetectResultWithQuality

Rappel pour la détection de la qualité du réseau avant l'appel, fourni environ 3 secondes après le début de la détection.

virtual void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality);

Ce rappel décrit le résultat de la détection du réseau de l'utilisateur local avant de rejoindre le canal, ce qui permet d'évaluer approximativement le niveau de qualité du réseau. Après avoir appelé StartLastmileDetect, le SDK renvoie ce rappel en environ 3 secondes.

Parameters

Parameter

Type

Description

networkQuality

AliEngineNetworkQuality

Le niveau de qualité du réseau.

OnLastmileDetectResultWithBandWidth

Rappel pour le résultat de la détection de la qualité du réseau avant l'appel, fourni environ 30 secondes après la détection.

virtual void OnLastmileDetectResultWithBandWidth(int code, AliRTCSdk::AliEngineNetworkProbeResult networkQuality);

Après avoir appelé StartLastmileDetect, le SDK renvoie ce rappel en environ 30 secondes, fournissant un résultat détaillé de la qualité du réseau.

Parameters

Parameter

Type

Description

code

int

Valeur de retour :

  • 0 : Détection réussie.

  • -1 : Échec de la détection.

networkQuality

AliRTCSdk::AliEngineNetworkProbeResult

Le résultat de la détection du réseau, incluant le RTT du lien ainsi que le taux de perte de paquets, la gigue et la bande passante des réseaux amont et aval.

OnOccurError

Si une erreur se produit dans le moteur, ce rappel en informe l'application.

virtual void OnOccurError(int error, const char *msg);

Parameters

Parameter

Type

Description

error

int

Le type d'erreur. Voir AliEngineErrorCode.

msg

const char *

Le message d'erreur.

OnFirstAudioPacketSend

Rappel pour le premier paquet audio envoyé. Ce rappel est déclenché lorsque le premier paquet de données audio est envoyé.

virtual void OnFirstAudioPacketSend(AliEngineAudioTrack audioTrack, int timeCost);

Parameters

Parameter

Type

Description

audioTrack

AliEngineAudioTrack

Le type audio, indiquant quel flux audio a vu son premier paquet envoyé.

timeCost

int

Le temps nécessaire à l'envoi, depuis la connexion au canal jusqu'à l'envoi du premier paquet audio (en millisecondes).

OnFirstAudioPacketReceived

Rappel pour le premier paquet audio reçu. Ce rappel est déclenché lorsque le premier paquet de données audio distant est reçu.

virtual void OnFirstAudioPacketReceived(const char* uid, AliEngineAudioTrack audioTrack, int timeCost) 

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

audioTrack

AliEngineAudioTrack

Le type audio, indiquant quel flux audio a vu son premier paquet reçu.

timeCost

int

Le temps nécessaire à la réception, depuis la connexion au canal jusqu'à la réception du premier paquet audio (en millisecondes).

OnFirstVideoPacketSend

Rappel pour le premier paquet vidéo envoyé.

virtual void OnFirstVideoPacketSend(AliEngineVideoTrack videoTrack, int timeCost);

Parameters

Parameter

Type

Description

videoTrack

AliEngineVideoTrack

Le type vidéo, indiquant quel flux vidéo a vu son premier paquet envoyé, tel que le flux de la caméra ou le flux de partage d'écran.

timeCost

int

Le temps nécessaire à l'envoi, depuis la connexion au canal jusqu'à l'envoi du premier paquet vidéo (en millisecondes).

OnFirstVideoPacketReceived

Rappel pour le premier paquet vidéo reçu.

virtual void OnFirstVideoPacketReceived(const char* uid, AliEngineVideoTrack videoTrack, int timeCost);

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

videoTrack

AliEngineVideoTrack

Le type vidéo, indiquant quel flux vidéo a vu son premier paquet reçu, tel que le flux de la caméra ou le flux de partage d'écran.

timeCost

int

Le temps nécessaire à la réception, depuis la connexion au canal jusqu'à la réception du premier paquet vidéo (en millisecondes).

OnFirstRemoteAudioDecoded

Rappel pour la première trame audio distante décodée.

virtual void OnFirstRemoteAudioDecoded(const char* uid, AliEngineAudioTrack audioTrack, int elapsed);

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

audioTrack

AliEngineAudioTrack

Le type audio, indiquant quel flux audio a vu sa première trame décodée.

elapsed

int

Le délai écoulé depuis que l'utilisateur local a rejoint le canal jusqu'au déclenchement de ce rappel, en millisecondes.

OnFirstRemoteVideoFrameDrawn

Ce message est déclenché lorsque la première trame vidéo d'un utilisateur distant est affichée.

virtual void OnFirstRemoteVideoFrameDrawn(const char *uid, AliEngineVideoTrack videoTrack,
                                                  int width, int height, int elapsed);

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

videoTrack

AliEngineVideoTrack

Le type vidéo, indiquant quel flux vidéo, tel que le flux de la caméra ou le flux de partage d'écran.

width

int

La largeur de la vidéo.

height

int

La hauteur de la vidéo.

elapsed

int

Le délai total écoulé depuis que l'utilisateur local a rejoint le canal jusqu'au déclenchement de ce rappel (en millisecondes).

OnFirstLocalVideoFrameDrawn

Ce message est déclenché lorsque l'aperçu commence à afficher la première trame vidéo.

virtual void OnFirstLocalVideoFrameDrawn(int width, int height, int elapsed);

Parameters

Parameter

Type

Description

width

int

La largeur de la vidéo.

height

int

La hauteur de la vidéo.

elapsed

int

Le délai total écoulé depuis que l'utilisateur local a rejoint le canal jusqu'au déclenchement de ce rappel (en millisecondes).

OnTestAudioVolumeCallback

Rappel pour le volume du test de collecte audio avant l'appel.

virtual void OnTestAudioVolumeCallback(int volumn);

Après avoir appelé avec succès StartAudioCaptureTest avant un appel, ce rappel est déclenché. Si un volume normal peut être retourné, cela indique que la collecte audio fonctionne correctement.

Parameters

Parameter

Type

Description

volumn

int

Renvoie les informations de volume.

OnAudioAccompanyStateChanged

Rappel pour l'état de lecture de l'accompagnement audio local.

virtual void OnAudioAccompanyStateChanged(AliEngineAudioAccompanyStateCode playState, AliEngineAudioAccompanyErrorCode errorCode);

Ce rappel est déclenché lorsque l'état de lecture de l'accompagnement change, et il notifie l'état de lecture actuel ainsi que le code d'erreur.

Parameters

Parameter

Type

Description

playState

AliEngineAudioAccompanyStateCode

L'état de lecture actuel.

errorCode

AliEngineAudioAccompanyErrorCode

Le code d'erreur de lecture.

OnAudioFileInfo

Rappel pour les informations du fichier audio.

virtual void OnAudioFileInfo(AliEngineAudioFileInfo info, AliEngineAudioAccompanyErrorCode errorCode);

Ce rappel est déclenché après avoir appelé GetAudioFileInfo, et il renvoie les informations actuelles du fichier audio ainsi qu'un code d'erreur.

Parameters

Parameter

Type

Description

info

AliEngineAudioFileInfo

Les informations du fichier audio.

errorCode

AliEngineAudioAccompanyErrorCode

Le code d'erreur.

OnRemoteAudioAccompanyStarted

Rappel lorsque l'accompagnement audio d'un utilisateur distant commence à être lu.

virtual void OnRemoteAudioAccompanyStarted(const char* uid);

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

OnRemoteAudioAccompanyFinished

Rappel lorsque l'accompagnement audio d'un utilisateur distant termine sa lecture.

virtual void OnRemoteAudioAccompanyFinished(const char* uid);

Parameters

Parameter

Type

Description

uid

const char*

L'ID de l'utilisateur distant.

SetParameter

Définit des paramètres personnalisés.

virtual int SetParameter(const char* parameter) = 0;

Parameters

Parameter

Type

Description

parameter

const char*

Paramètres personnalisés.

GetParameter

Récupère des paramètres personnalisés.

virtual String GetParameter(const char* parameter) = 0;

Parameters

Parameter

Type

Description

parameter

const char*

Paramètres personnalisés.

EnableAudioFrameObserver

Active ou désactive l'abonnement aux données audio.

virtual int EnableAudioFrameObserver(bool enabled, AliEngineAudioSource audioSource, AliEngineAudioFrameObserverConfig config) = 0;

Cette méthode active ou désactive le rappel pour un type spécifique de données audio, ce qui vous permet de récupérer divers types de données audio brutes et encodées. Elle est désactivée par défaut. Pour l'activer, appelez cette méthode.

Remarque

Lorsque vous appelez cette méthode pour activer le rappel de données audio pour la source AliEngineAudioSource correspondante, vous devez l'utiliser conjointement avec la méthode RegisterAudioFrameObserver afin de transmettre l'objet de réception des données audio.

When to call

Lorsque vous avez besoin de récupérer des données audio, vous pouvez appeler cette méthode pour l'activer.

Parameters

Parameter

Type

Description

enable

bool

Indique si les rappels de données sont autorisés.

audioSource

AliEngineAudioSource

Le type de source de données de rappel, incluant les données collectées (0), post-3A (1), publiées (2), de lecture (3) et extraites (5).

Remarque :

  • Les données audio publiées et les données audio mixtes publiées/en lecture ne prennent en charge que le mode ReadOnly.

  • Les données audio extraites ne permettent pas de modifier les paramètres audio tels que la fréquence d'échantillonnage et le nombre de canaux.

config

AliEngineAudioFrameObserverConfig

Paramètres de rappel audio, incluant la fréquence d'échantillonnage, le nombre de canaux et le mode de lecture/écriture du rappel (lecture seule, écriture seule, lecture-écriture). Si le paramètre est nul, la valeur par défaut est (48000, 1, ReadOnly).

RegisterAudioFrameObserver

Enregistre un rappel de données audio.

virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Cette méthode enregistre l'objet de réception pour les données de rappel audio.

When to call

Lorsque vous avez besoin que le SDK déclenche les rappels OnCapturedAudioFrame, OnProcessCapturedAudioFrame, OnPublishAudioFrame, OnPlaybackAudioFrame ou OnRemoteUserAudioFrame afin de récupérer divers types de données audio, vous devez appeler cette méthode pour fournir un objet de réception des données audio. Pour annuler l'enregistrement, appelez à nouveau cette méthode en transmettant la valeur null.

Limits

Vous devez appeler EnableAudioFrameObserver pour activer le rappel pour l'AliEngineAudioSource spécifique. Sinon, l'observateur transmis ne pourra pas récupérer les données.

Parameters

Parameter

Type

Description

observer

IAudioFrameObserver*

Un pointeur vers l'objet de rappel.

Return value

0 en cas de succès, autre valeur en cas d'échec.

UnRegisterAudioFrameObserver

Se désabonne de la sortie des données audio (méthode IAliEngineMediaEngine).

virtual void UnRegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Parameters

Name

Type

Description

observer

IAudioFrameObserver

Un pointeur vers l'objet de rappel.

RegisterVideoSampleObserver

S'abonne à la sortie des données vidéo.

virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

Cette méthode enregistre l'objet de sortie pour les données vidéo. Pour annuler l'enregistrement, appelez la méthode UnRegisterVideoSampleObserver.

Remarque

Les données de sortie seront renvoyées via le rappel {@link IVideoFrameObserver}.

When to call

Pour récupérer des données vidéo brutes (telles que le format YUV ou RGBA), vous pouvez appeler cette méthode pour enregistrer un observateur de données vidéo afin de récupérer les données vidéo à différentes étapes.

Related callbacks

Après avoir enregistré avec succès un observateur de sortie de données vidéo, le SDK déclenche les rappels que vous implémentez lorsqu'il capture chaque trame vidéo. Implémentez les rappels correspondants selon vos besoins :

Parameters

Name

Type

Description

observer

IVideoFrameObserver

Un pointeur vers l'objet de rappel.

UnRegisterVideoSampleObserver

Annule l'enregistrement de la sortie des données vidéo.

virtual void UnRegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

Cette méthode correspond à la méthode RegisterVideoSampleObserver et est chargée d'annuler l'enregistrement de l'objet de sortie des données vidéo.

Parameters

Name

Type

Description

observer

IVideoFrameObserver

Un pointeur vers l'objet de rappel.

SnapshotVideo

Fonctionnalité de capture d'image vidéo.

virtual int SnapshotVideo(const String& userId, const AliEngineVideoTrack &trackType) = 0;

La fonctionnalité de capture d'image vidéo est une méthode asynchrone. Vous pouvez écouter le rappel AliEngineEventListener::OnSnapshotComplete pour récupérer la capture d'écran actuelle.

Parameters

Parameter

Type

Description

userId

const String&

L'ID de l'utilisateur. Une chaîne vide pour userId représente l'utilisateur local.

trackType

const AliEngineVideoTrack&

Le type de flux vidéo. Seuls AliEngineVideoTrackCamera et AliEngineVideoTrackScreen sont pris en charge.

Return value

  • 0 : L'appel de la méthode a réussi. La capture d'écran est obtenue via le rappel.

  • <0 : L'appel de la méthode a échoué.

SetLogDirPath

Définit le chemin d'enregistrement des fichiers journaux du SDK.

static int SetLogDirPath(const char *logDirPath);

Parameters

Name

Type

Description

logDirPath

const char *

Le chemin absolu pour enregistrer le fichier journal.

Returns

0 : L'appel de la méthode a réussi. Autre valeur : L'appel de la méthode a échoué.

Remarque

Appelez cette méthode avant d'appeler toute autre méthode du SDK pour éviter la perte de journaux. L'application doit s'assurer que le répertoire spécifié existe et est accessible en écriture.

SetLogLevel

Définit le niveau de journalisation.

static void SetLogLevel(AliEngineLogLevel logLevel);

Parameters

Name

Type

Description

logLevel

AliEngineLogLevel

Le niveau de journalisation. La valeur par défaut est AliEngineLogInfo.

GetNetworkTime

Récupère l'heure réseau actuelle.

virtual long long GetNetworkTime() = 0;

Return value

Récupère l'heure réseau actuelle ajustée avec le décalage (heure NTP), en millisecondes.

SendDataChannelMessage

Envoie un message sur le canal de données.

virtual int SendDataChannelMessage(const AliEngineDataChannelMsg& msg) = 0;

Le SDK ARTC offre la possibilité d'envoyer et de recevoir des messages personnalisés. Cela vous permet d'envoyer des données de messages en temps réel personnalisés tout en transmettant des données audio et vidéo. Par exemple, vous pouvez appeler cette méthode pour transmettre des instructions de contrôle en temps réel, des données de synchronisation d'état ou d'autres messages métier conjointement avec l'audio et la vidéo. Pour plus d'informations, consultez Envoyer et recevoir des messages personnalisés.

Remarque
  • Le canal de messages personnalisés est désactivé par défaut. Pour activer cette fonctionnalité, appelez l'API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="fe71661227b31">SetParameter</a> et définissez le paramètre sur "{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}". Vous pouvez effectuer cette opération avant ou après avoir rejoint un canal.

  • Le message peut contenir n'importe quelles données, telles que du texte ou des images.

  • La fonctionnalité ARTC DataChannel repose sur le côté ingestion pour pousser des flux audio ou vidéo. Veuillez vous assurer que votre scénario inclut des flux audio et vidéo actifs en cours d'ingestion.

Related callbacks

  • Une fois que l'expéditeur a activé avec succès le canal de messages personnalisés, il peut appeler cette méthode pour envoyer des messages personnalisés. Le destinataire déclenche ce rappel en écoutant le rappel OnDataChannelMessage pour recevoir les messages personnalisés.

Limits

  • Le rôle de streamer peut envoyer et recevoir des messages. Le rôle de viewer prend uniquement en charge la réception des messages.

  • Vous devez appeler SetParameter pour activer le canal de messages personnalisés.

  • L'envoi de données est limité comme suit :

    • Une limite de débit de 30 Ko/s.

    • Le canal de données peut envoyer un maximum de 60 paquets de données par seconde, chaque paquet pouvant atteindre 1 Ko.

Parameters

Nom

Type

Description

msg

const AliEngineDataChannelMsg&

Le message à envoyer.

Description de la valeur de retour

  • 0 : Succès.

  • Valeur non nulle : Échec.

StartScreenShareByDesktopId

Démarre le partage du flux d'écran correspondant à l'ID de bureau spécifié.

virtual int StartScreenShareByDesktopId(unsignedint desktopId, const AliEngineScreenShareConfig& config) = 0;

Paramètres

Nom

Type

Description

desktopId

unsignedint

L'ID du bureau.

config

AliEngineScreenShareConfig

La configuration pour le partage du bureau.

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

StartScreenShareByScreenRegion

Démarre le partage du flux vidéo d'une région d'écran spécifiée.

  • Cette méthode est réservée au partage de bureau. Pour configurer le partage de fenêtre, utilisez la méthode StartScreenShareByWindowId.

  • Lorsque vous configurez une région spécifique pour le partage, la résolution minimale de la région partagée est de 16 × 16. Si la région définie est inférieure à la résolution minimale, elle est réinitialisée à cette dernière.

  • Lorsque vous configurez une région spécifique pour le partage, si la région partagée définie dépasse la résolution réelle du bureau, l'intégralité du bureau est partagée.

  • Pour plus d'informations sur les coordonnées d'écran virtuel, consultez The Virtual Screen.

virtual int StartScreenShareByScreenRegion(
const AliEngineScreenShareRegion & screenRegion, 
const AliEngineScreenShareConfig & config) = 0;

Paramètres

Nom

Type

Description

screenRegion

AliEngineScreenShareRegion

Spécifie la position de l'écran à partager par rapport à l'écran virtuel.

config

AliEngineScreenShareConfig

La configuration de partage d'écran.

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

StartScreenShareByWindowId

Partage et publie le flux vidéo provenant d'une source vidéo en utilisant l'ID de fenêtre spécifié par l'utilisateur.

virtual int StartScreenShareByWindowId(unsigned int windowId, 
  const AliEngineScreenShareConfig & config) = 0;

Paramètres

Nom

Type

Description

windowId

int

L'ID de la fenêtre.

config

AliEngineScreenShareConfig

La configuration de partage d'écran.

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

StopScreenShare

Arrête le partage d'écran.

virtual int StopScreenShare() = 0 ;

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

ResumeScreenShare

Reprend le partage d'écran.

virtual int ResumeScreenShare() = 0;

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

PauseScreenShare

Met en pause le partage d'écran.

virtual int PauseScreenShare() = 0;

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

IsScreenSharePublished

Interroge si le partage d'écran est publié.

Remarque

Appelez cette méthode pour vérifier si le flux de partage d'écran est actuellement publié. Le SDK ne publie pas le flux de partage d'écran par défaut. Pour publier le flux de partage d'écran, vous pouvez appeler la méthode StartScreenShareByDesktopId, StartScreenShareByScreenRegion ou StartScreenShareByWindowId.

virtual bool IsScreenSharePublished() = 0;

Valeur de retour

  • true : La publication est activée.

  • false : La publication n'est pas activée.

UpdateScreenShareConfig

Met à jour la configuration de partage d'écran.

virtual int UpdateScreenShareConfig(const AliEngineScreenShareConfig & config) = 0;

Paramètres

Paramètre

Type

Description

config

AliEngineScreenShareConfig

La configuration de partage d'écran mise à jour.

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

CheckWindowSourceVaild

Détermine si la fenêtre correspondant à l'ID de fenêtre partagée est valide.

virtual bool CheckWindowSourceVaild(unsigned int windowId) = 0;

Paramètres

Paramètre

Type

Description

int

unsigned int

L'ID de la fenêtre.

Valeur de retour

  • true : L'ID de fenêtre correspondant est valide.

  • false : L'ID de fenêtre correspondant n'est pas valide.

GetScreenShareConfig

Renvoie les informations de configuration actuelles du partage d'écran.

virtual AliEngineScreenShareConfig GetScreenShareConfig() = 0;

Paramètres

Paramètre

Type

Description

int

unsigned int

L'ID de la fenêtre.

Valeur de retour

  • true : L'ID de fenêtre correspondant est valide.

  • false : L'ID de fenêtre correspondant n'est pas valide.

GetScreenShareSourceInfo

Récupère une liste d'objets basée sur la source spécifiée.

virtual AliEngineScreenSourceList* GetScreenShareSourceInfo(AliEngineScreenShareType sourceType) = 0;

Paramètres

Paramètre

Type

Description

sourceType

AliEngineScreenShareType

Le type de source de partage.

Valeur de retour

  • Un objet AliEngineScreenSourceList non vide correspond à la liste des types de sources de partage obtenus.

  • NULL indique un échec.

GetCurrentScreenShareSourceId

Récupère l'ID de la source d'écran partagée actuelle.

virtual unsigned int GetCurrentScreenShareSourceId() = 0;

Valeur de retour

  • >=0 indique l'ID de la source d'écran partagée actuelle.

  • <0 indique un échec.

GetCurrentScreenShareSourceType

Récupère une liste d'objets à partir de la source spécifiée.

virtual AliEngineScreenShareType GetCurrentScreenShareSourceType() = 0;

Paramètres

Paramètre

Type

Description

sourceType

AliEngineScreenShareType

Le type de la source partagée.

Valeur de retour

  • Un objet AliEngineScreenSourceList non vide contenant la liste des types de sources partagées.

  • NULL indique que l'opération a échoué.

GetDesktopRegion

Récupère la plage de partage de bureau en fonction de l'ID source et du titre source spécifiés.

virtual int GetDesktopRegion(const String& sourceId, const String& sourceTitle, AliEngineScreenShareRegion & region) = 0;

Paramètres

Paramètre

Type

Description

sourceId

String

L'ID de la source de partage.

sourceTitle

String

Le titre de la source.

region

AliEngineScreenShareRegion

La plage de partage.

Valeur de retour

  • 0 : Succès.

  • Autre : Échec.

SetScreenShareEncoderConfiguration

Définit les propriétés d'encodage vidéo du flux d'écran.

virtual void SetScreenShareEncoderConfiguration(const AliEngineScreenShareEncoderConfiguration& config) = 0;

Cette méthode définit les paramètres vidéo pour les propriétés d'encodage vidéo du flux d'écran, tels que la résolution, la fréquence d'images, le débit binaire et l'orientation vidéo. Tous les paramètres définis ont des limites de plage correspondantes. Si un paramètre défini se situe en dehors de la plage valide, le SDK l'ajuste automatiquement.

Cette méthode peut être appelée avant ou après votre connexion à un canal. Si vous devez définir les propriétés d'encodage vidéo du flux d'écran une seule fois par session, nous vous recommandons de l'appeler avant de rejoindre le canal.

Paramètres

Paramètre

Type

Description

config

AliEngineScreenShareEncoderConfiguration

Propriétés d'encodage de partage d'écran prédéfinies.

Appartient à l'interface

IAliEngineMediaEngine