Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Azure İletişim Hizmetleri'nin bu özelliği şu anda önizlemede. Önizlemedeki özellikler genel kullanıma açıktır ve tüm yeni ve mevcut Microsoft müşterileri tarafından kullanılabilir.
Bu önizleme sürümü, hizmet düzeyi anlaşması olmadan sağlanmaktadır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya özellikler kısıtlanmış olabilir.
Daha fazla bilgi için, bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Önemli
Azure İletişim Hizmetleri'nin bu özelliği şu anda önizlemede. Önizlemedeki özellikler genel kullanıma açıktır ve tüm yeni ve mevcut Microsoft müşterileri tarafından kullanılabilir.
Bu önizleme sürümü, hizmet düzeyi anlaşması olmadan sağlanmaktadır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya özellikler kısıtlanmış olabilir.
Daha fazla bilgi için, bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Önemli
Azure İletişim Hizmetleri'nin bu özelliği şu anda önizlemede. Önizlemedeki özellikler genel kullanıma açıktır ve tüm yeni ve mevcut Microsoft müşterileri tarafından kullanılabilir.
Bu önizleme sürümü, hizmet düzeyi anlaşması olmadan sağlanmaktadır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmeyebilir veya özellikler kısıtlanmış olabilir.
Daha fazla bilgi için, bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Etkin bir arama sırasında, diğer katılımcılardan durum gönderip almanızı öneririz. Nasıl yapılacağını öğrenelim.
Önkoşullar
- Azure hesabı aktif bir abonelikle birlikte. Ücretsiz hesap oluşturun.
- Dağıtılmış İletişim Hizmetleri kaynağı. İletişim Hizmetleri kaynağı oluşturun.
- Arama yapan istemciyi etkinleştirmek için bir kullanıcı erişim belirteci. Daha fazla bilgi için Create and manage access tokens bölümüne bakın.
- Tercihe bağlı: Uygulamanıza sesli arama eklemek için hızlı başlangıcı tamamlayın.
SDK'yi yükleyin
npm install komutunu kullanarak Azure İletişim Hizmetleri Ortak ve Çağrı SDK'sını JavaScript için yükleyin:
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Gerekli nesneleri başlatma
Çoğu çağrı işlemleri için bir CallClient örneği gereklidir. Yeni bir CallClient örneği oluşturduğunuzda, bunu Logger örneğine benzer özel seçeneklerle yapılandırabilirsiniz.
CallClient örneğini kullanarak, CallAgent çağrısında bulunarak bir createCallAgent örneği oluşturabilirsiniz. Bu yöntem CallAgent örnek nesnesini asenkron bir şekilde döndürür.
createCallAgent yöntemi, CommunicationTokenCredential'yi bir argüman olarak kullanır.
Kullanıcı erişim belirtecini kabul eder.
getDeviceManager yöntemini CallClient örneğinde kullanarak deviceManager öğesine erişebilirsiniz.
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()
Microsoft altyapısına SDK bağlantısını yönetme
Call Agent örneği, aramaları yönetmenize yardımcı olur (aramalara katılmak veya başlatmak için). Arama SDK'nızın çalışması için gelen aramaların bildirimlerini almak ve diğer arama ayrıntılarını koordine etmek için Microsoft altyapısına bağlanması gerekir.
Call Agent iki olası duruma sahiptir.
Bağlı - Call Agent bağlantıDurumu değeri Connected, istemci SDK'sının bağlı olduğunu ve Microsoft altyapısından bildirim alabilme kapasitesine sahip olduğunu ifade eder.
Bağlantı Kesildi - Call Agent değerine sahip bir connectionStatue, SDK'nın düzgün bir şekilde bağlanmasını engelleyen bir sorun olduğunu belirtir.
Call Agent yeniden oluşturulmalıdır.
-
invalidToken: Eğer bir belirteç süresi dolmuşsa veya geçersizse,Call Agentörneği bu hatayla bağlantısını keser. -
connectionIssue: İstemcinin Microsoft altyapısına bağlanmasıyla ilgili bir sorun varsa, birçok yeniden denemeden sonraCall AgentconnectionIssuehatasını ortaya çıkarır.
Yerel Call Agent'ınızın Microsoft altyapısına bağlı olup olmadığını, connectionState özelliğinin mevcut değerini kontrol ederek denetleyebilirsiniz. Etkin bir çağrı sırasında, connectionStateChanged olayını dinleyerek Call Agent'in Bağlı durumundan Bağlantısız duruma geçip geçmediğini belirleyebilirsiniz.
const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'
const connectionStateCallback = (args) => {
console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
// it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);
El Kaldır özelliği, bir aramadaki katılımcıların konuşmacıyı veya diğer katılımcıları kesintiye uğratmadan bir soru, yorum veya endişeleri olduğunu belirtmelerini sağlar. Bu özelliği, Azure İletişim Hizmeti'nde ve Teams çağrılarında birçok katılımcıyla yapılan 1:1 aramalar ve aramalar dahil olmak üzere herhangi bir arama türünde kullanabilirsiniz.
İlk olarak Arama SDK'sından arama özelliklerini içeri aktarmanız gerekir:
import { Features} from "@azure/communication-calling";
Ardından, arama örneğinden özellik API nesnesini alabilirsiniz.
const raiseHandFeature = call.feature(Features.RaiseHand );
Geçerli katılımcı için el kaldırma ve indirme
Mevcut katılımcı için El Kaldırma durumunu değiştirmek amacıyla raiseHand() ve lowerHand() yöntemlerini kullanabilirsiniz.
Bu yöntemler eşzamansızdır. Sonuçları doğrulamak için raisedHandChanged ve loweredHandChanged dinleyicilerini kullanın.
const raiseHandFeature = call.feature(Features.RaiseHand );
//raise
raiseHandFeature.raiseHand();
//lower
raiseHandFeature.lowerHand();
Diğer katılımcıların elini indir
Bu özellik, Düzenleyici ve Sunucu rollerine sahip kullanıcıların Teams aramalarında diğer katılımcıların ellerini indirmelerine olanak tanır. Azure İletişim çağrılarında, önce rolleri eklemediğiniz sürece diğer katılımcıların durumunu değiştiremezsiniz.
Bu özelliği kullanmak için aşağıdaki kodu uygulayın:
const raiseHandFeature = call.feature(Features.RaiseHand );
//lower all hands on the call
raiseHandFeature.lowerAllHands();
//or we can provide array of CommunicationIdentifier to specify list of participants
CommunicationUserIdentifier acsUser = new CommunicationUserIdentifier(<USER_ID>);
MicrosoftTeamsUserIdentifier teamsUser = new MicrosoftTeamsUserIdentifier(<USER_ID>)
CommunicationIdentifier participants[] = new CommunicationIdentifier[]{ acsUser, teamsUser };
raiseHandFeature.lowerHands(participants);
Değişen durumları yönetme
El Kaldır API'siyle, bir çağrıdaki katılımcıların durumundaki değişiklikleri işlemek için raisedHandChanged ve loweredHandChanged olaylarına abone olabilirsiniz. Çağrı örneği bu olayları tetikler ve durumu değişen katılımcı hakkında bilgi sağlar.
Bu olaylara abone olmak için aşağıdaki kodu kullanın:
const raiseHandFeature = call.feature(Features.RaiseHand );
// event : {identifier: CommunicationIdentifier}
const raisedHandChangedHandler = (event) => {
console.log(`Participant ${event.identifier} raised hand`);
};
const loweredHandChangedHandler = (event) => {
console.log(`Participant ${event.identifier} lowered hand`);
};
raiseHandFeature.on('raisedHandEvent', raisedHandChangedHandler):
raiseHandFeature.on('loweredHandEvent', loweredHandChangedHandler):
raisedHandChanged ve loweredHandChanged olayları, katılımcının iletişim tanımlayıcısını temsil eden identifier özelliğine sahip bir nesne içerir. Yukarıdaki örnekte, bir katılımcının elini kaldırdığını belirten bir mesajı konsola kaydederiz.
Olayların aboneliğini iptal etmek için off yöntemini kullanın.
Aktif duruma sahip tüm katılımcıların listesi
Geçerli aramada el durumu yükseltilmiş tüm katılımcılar hakkında bilgi almak için kullanabilirsiniz getRaisedHands. Döndürülen dizi, sıralama alanına göre sıralanmıştır.
Aşağıda, uygulamasının nasıl kullanılacağına yönelik bir örnek verilmişti getRaisedHands:
const raiseHandFeature = call.feature(Features.RaiseHand );
let participantsWithRaisedHands = raiseHandFeature.getRaisedHands();
Kaldırılan Ellerin Sırası
participantsWithRaisedHands değişkeni, her nesnenin aşağıdaki özelliklere sahip olduğu bir katılımcı nesneleri dizisi içerir:
-
identifier: katılımcının iletişim tanımlayıcısı. -
order: katılımcının elini kaldırdığı sıra.
Bu bilgileri, El Kaldır durumuna ve kuyruktaki sıralarına sahip katılımcıların listesini görüntülemek için kullanabilirsiniz.
SDK'yi yükleyin
Proje seviyesindeki build.gradle dosyanızı bulun ve mavenCentral()'i buildscript ve allprojects altındaki depolar listesine ekleyin.
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Ardından modül düzeyi build.gradle dosyanızdaki dependencies bölümüne aşağıdaki satırları ekleyin:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Gerekli nesneleri başlatma
Bir CallAgent örneği oluşturmak için, bir createCallAgent örneği üzerinde CallClient yöntemini çağırmanız gerekir. Bu çağrı, CallAgent örnek nesnesini eşzamansız olarak döndürür.
createCallAgent yöntemi, bir CommunicationUserCredential argüman olarak alır ve bu argüman bir erişim jetonu kapsüller.
DeviceManager erişmek için önce bir callAgent örneği oluşturmalısınız. Daha sonra CallClient.getDeviceManager yöntemini kullanarak DeviceManager elde edebilirsiniz.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
Arayan için bir görüntüleme adı ayarlamak amacıyla bu alternatif yöntemi kullanın:
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
El Kaldır özelliği, bir aramadaki katılımcıların konuşmacıyı veya diğer katılımcıları kesintiye uğratmadan bir soru, yorum veya endişeleri olduğunu belirtmelerini sağlar. Bu özelliği, Azure İletişim Hizmeti'nde ve Teams çağrılarında birçok katılımcıyla yapılan 1:1 aramalar ve aramalar dahil olmak üzere herhangi bir arama türünde kullanabilirsiniz.
İlk olarak Arama SDK'sından arama özelliklerini içeri aktarmanız gerekir:
import com.azure.android.communication.calling.RaiseHandFeature;
Ardından, arama örneğinden özellik API nesnesini alabilirsiniz.
RaiseHandFeature raiseHandFeature = call.feature(Features.RAISE_HAND);
Geçerli katılımcı için el kaldırma ve indirme
Mevcut katılımcı için El Kaldırma durumunu değiştirmek amacıyla raiseHand() ve lowerHand() yöntemlerini kullanabilirsiniz.
Bu yöntemler eşzamansızdır. Sonuçları doğrulamak için RaisedHandReceived ve LoweredHandReceived dinleyicilerini kullanın.
RaiseHandFeature raiseHandFeature = call.feature(Features.RAISE_HAND);
//raise
raiseHandFeature.raiseHand();
//lower
raiseHandFeature.lowerHand();
Diğer katılımcıların elini indir
Bu özellik, Düzenleyici ve Sunucu rollerine sahip kullanıcıların Teams aramalarında diğer katılımcıların ellerini indirmelerine olanak tanır. Azure İletişim çağrılarında, önce rolleri eklemediğiniz sürece diğer katılımcıların durumunu değiştiremezsiniz.
Bu özelliği kullanmak için aşağıdaki kodu uygulayın:
RaiseHandFeature raiseHandFeature = call.feature(Features.RAISE_HAND);
//lower all hands on the call
raiseHandFeature.lowerAllHands();
//or we can provide array of CommunicationIdentifier to specify list of participants
List<CommunicationIdentifier> identifiers = new ArrayList<>();
CommunicationUserIdentifier acsUser = new CommunicationUserIdentifier(<USER_ID>);
MicrosoftTeamsUserIdentifier teamsUser = new MicrosoftTeamsUserIdentifier(<USER_ID>);
identifiers.add(new CommunicationUserIdentifier("<USER_ID>"));
identifiers.add(new MicrosoftTeamsUserIdentifier("<USER_ID>"));
raiseHandFeature.lowerHands(identifiers);
Değişen durumları yönetme
Raise Hand API'sini kullanarak, bir çağrıda katılımcıların durumundaki değişiklikleri işlemek için RaisedHandReceived ve LoweredHandReceived olaylarına abone olabilirsiniz. Çağrı örneği bu olayları tetikler ve durumu değişen katılımcı hakkında bilgi sağlar.
Bu olaylara abone olmak için aşağıdaki kodu kullanın:
RaiseHandFeature raiseHandFeature = call.feature(Features.RAISE_HAND)
// event example : {identifier: CommunicationIdentifier, isRaised: true, order:1}
call.feature(Features.RAISE_HAND).addOnRaisedHandReceivedListener(raiseHandEvent -> {
Log.i(TAG, String.format("Raise Hand: %s : %s", Utilities.toMRI(raiseHandEvent.getIdentifier()), raiseHandEvent.isRaised()));
});
RaisedHandReceived ve LoweredHandReceived olayları, katılımcının iletişim tanımlayıcısını temsil eden identifier özelliğine sahip bir nesne içerir. Yukarıdaki örnekte, bir katılımcının elini kaldırdığını belirten bir mesajı konsola kaydederiz.
Etkinliklerden çıkmak için off yöntemini kullanabilirsiniz.
Aktif duruma sahip tüm katılımcıların listesi
Geçerli aramada el durumu yükseltilmiş tüm katılımcılar hakkında bilgi almak için kullanabilirsiniz getRaisedHands. Döndürülen dizi, sıralama alanına göre sıralanmıştır.
Aşağıda, uygulamasının nasıl kullanılacağına yönelik bir örnek verilmişti getRaisedHands:
RaiseHandFeature raiseHandFeature = call.feature(Features.RAISE_HAND);
List<RaiseHand> participantsWithRaisedHands = raiseHandFeature.getRaisedHands();
Kaldırılan Ellerin Sırası
participantsWithRaisedHands değişkeni, her nesnenin aşağıdaki özelliklere sahip olduğu bir katılımcı nesneleri dizisi içerir:
-
identifier: katılımcının iletişim tanımlayıcısı. -
order: katılımcının elini kaldırdığı sıra.
Bu bilgileri, El Kaldır durumuna ve kuyruktaki sıralarına sahip katılımcıların listesini görüntülemek için kullanabilirsiniz.
Sistemini kur
Sisteminizi kurmak için bu adımları izleyin.
Xcode projesini oluşturun
Xcode'da yeni bir iOS projesi oluşturun ve Tek Görünüm Uygulaması şablonunu seçin. Bu makale SwiftUI framework kullanıyor, bu yüzden DiliSwift olarak ayarlamalı ve ArayüzüSwiftUI olarak ayarlamalısınız.
Bu makalede testler oluşturmayacaksınız. Lütfen Testleri Dahil Et onay kutusunu temizleyin.
CocoaPods kullanarak paket ve bağımlılıkları yükleyin.
Uygulamanız için, şu örnekte olduğu gibi bir Podfile oluşturun:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' endpod install'i çalıştırın.Xcode kullanarak
.xcworkspaceaç.
Mikrofona erişim iste.
Cihazın mikrofonuna erişmek için, uygulamanızın bilgi özellikleri listesini güncellemeniz gerekir NSMicrophoneUsageDescription kullanarak. İlişkili değeri, sistemin kullanıcıdan erişim istemek için kullandığı diyalogta yer alan bir metne ayarlayın.
Proje ağacında Info.plist girişine sağ tıklayın ve ardından Aç> seçeneği olarak Kaynak Kod seçeneğini belirleyin. Aşağıdaki satırları üst düzey <dict> bölümüne ekleyin ve ardından dosyayı kaydedin.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Uygulama çerçevesini kur
Proje dosyanızdaki ContentView.swift dosyasını açın. Dosyanın en üstüne bir import bildirimi ekleyerek AzureCommunicationCalling kütüphaneyi içeri aktarın. Ayrıca AVFoundation içe aktarın. Kodda ses izin istekleri için buna ihtiyacınız var.
import AzureCommunicationCalling
import AVFoundation
CallAgent'ı başlatma
CallAgent'den bir CallClient örneği oluşturmak için, başlatıldıktan sonra bir callClient.createCallAgent nesnesini eşzamansız olarak döndüren bir CallAgent yöntemi kullanmanız gerekir.
Bir çağrı istemcisi oluşturmak için, bir CommunicationTokenCredential nesnesi aktarın.
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
Oluşturduğunuz CommunicationTokenCredential nesnesini CallClient'e iletin ve görüntülemeyi adını ayarlayın.
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
El Kaldır özelliği, bir aramadaki katılımcıların konuşmacıyı veya diğer katılımcıları kesintiye uğratmadan bir soru, yorum veya endişeleri olduğunu belirtmelerini sağlar. Bu özelliği, Azure İletişim Hizmeti'nde ve Teams çağrılarında birçok katılımcıyla yapılan 1:1 aramalar ve aramalar dahil olmak üzere herhangi bir arama türünde kullanabilirsiniz.
İlk olarak Arama SDK'sından arama özelliklerini içeri aktarmanız gerekir:
import AzureCommunicationCalling
Ardından, arama örneğinden özellik API nesnesini alabilirsiniz.
@State var raisehandFeature: RaiseHandCallFeature?
raiseHandFeature = self.call!.feature(Features.raiseHand)
Geçerli katılımcı için el kaldırma ve indirme
Mevcut katılımcı için El Kaldırma durumunu değiştirmek amacıyla raiseHand() ve lowerHand() yöntemlerini kullanabilirsiniz.
//publish raise hand state for local participant
raisehandFeature.raiseHand(completionHandler: { (error) in
if let error = error {
print ("Feature failed raise a hand %@", error as Error)
}
})
//remove raise hand state for local participant
raisehandFeature.lowerHand(completionHandler: { (error) in
if let error = error {
print ("Feature failed lower hand %@", error as Error)
}
})
Diğer katılımcıların elini indir
Bu özellik, Düzenleyici ve Sunucu rollerine sahip kullanıcıların Teams aramalarında diğer katılımcıların ellerini indirmelerine olanak tanır. Azure İletişim çağrılarında, önce rolleri eklemediğiniz sürece diğer katılımcıların durumunu değiştiremezsiniz.
Bu özelliği kullanmak için aşağıdaki kodu uygulayın:
// remove raise hand states for all participants on the call
raisehandFeature.lowerAllHands(completionHandler: { (error) in
if let error = error {
print ("Feature failed lower all hands %@", error as Error)
}
})
// remove raise hand states for all remote participants on the call
let identifiers = (call?.remoteParticipants.map {$0.identifier})!;
raisehandFeature.lowerHands(participants: identifiers, completionHandler: { (error) in
if let error = error {
print ("Feature failed lower hands %@", error as Error)
}
})
// remove raise hand state of specific user
var identifiers : [CommunicationIdentifier] = []
identifiers.append(CommunicationUserIdentifier("<USER_ID>"))
raisehandFeature.lowerHands(participants: identifiers, completionHandler: { (error) in
if let error = error {
print ("Feature failed lower hands %@", error as Error)
}
})
Değişen durumları yönetme
El Kaldır API'siyle, bir çağrıdaki katılımcıların durumundaki değişiklikleri işlemek için RaisedHandReceived ve LoweredHandReceived olaylarına abone olabilirsiniz. Çağrı örneği bu olayları tetikler ve durumu değişen katılımcı hakkında bilgi sağlar.
Bu olaylara abone olmak için aşağıdaki kodu kullanın:
self.callObserver = CallObserver(view:self)
raisehandFeature = self.call!.feature(Features.raiseHand)
raisehandFeature!.delegate = self.callObserver
public class CallObserver : NSObject, RaiseHandCallFeatureDelegate
{
// event example : {identifier: CommunicationIdentifier}
public func raiseHandCallFeature(_ raiseHandCallFeature: RaiseHandCallFeature, didReceiveRaisedHand args: RaisedHandChangedEventArgs) {
os_log("Raise hand feature updated: %s is raised hand", log:log, Utilities.toMri(args.identifier))
raiseHandCallFeature.raisedHands.forEach { raiseHand in
os_log("Raise hand active: %s", log:log, Utilities.toMri(raiseHand.identifier))
}
}
public func raiseHandCallFeature(_ raiseHandCallFeature: RaiseHandCallFeature, didReceiveLoweredHand args: LoweredHandChangedEventArgs) {
os_log("Raise hand feature updated: %s is lowered hand", log:log, Utilities.toMri(args.identifier))
raiseHandCallFeature.raisedHands.forEach { raiseHand in
os_log("Raise hand active: %s", log:log, Utilities.toMri(raiseHand.identifier))
}
}
}
RaisedHandReceived ve LoweredHandReceived olayları, katılımcının iletişim tanımlayıcısını temsil eden identifier özelliğine sahip bir nesne içerir. Yukarıdaki örnekte, bir katılımcının elini kaldırdığını belirten bir mesajı konsola kaydederiz.
Olayların aboneliğini iptal etmek için off yöntemini kullanın.
Aktif duruma sahip tüm katılımcıların listesi
Geçerli aramada el durumu yükseltilmiş tüm katılımcılar hakkında bilgi almak için kullanabilirsiniz getRaisedHands. Döndürülen dizi, sıralama alanına göre sıralanmıştır.
Aşağıda, uygulamasının nasıl kullanılacağına yönelik bir örnek verilmişti raisedHands:
raisehandFeature = self.call!.feature(Features.raiseHand)
raisehandFeature.raisedHands.forEach { raiseHand in
os_log("Raise hand active: %s", log:log, Utilities.toMri(raiseHand.identifier))
}
Kaldırılan Ellerin Sırası
raisedHands değişkeni, her nesnenin aşağıdaki özelliklere sahip olduğu bir katılımcı nesneleri dizisi içerir:
-
identifier: katılımcının iletişim tanımlayıcısı. -
order: katılımcının elini kaldırdığı sıra.
Bu bilgileri, El Kaldır durumuna ve kuyruktaki sıralarına sahip katılımcıların listesini görüntülemek için kullanabilirsiniz.
Sistemini kur
Sisteminizi kurmak için bu adımları izleyin.
Visual Studio projesi oluştur.
Universal Windows Platform uygulaması için, Visual Studio 2022'de yeni bir Boş Uygulama (Evrensel Windows) projesi oluşturun. Proje adını girdikten sonra, 10.0.17763.0'dan sonraki bir Windows SDK'sını seçebilirsiniz.
WinUI 3 uygulaması için, tek sayfalık bir WinUI 3 uygulaması kurmak amacıyla Boş Uygulama, Paketlenmiş (Masaüstünde WinUI 3) şablonuyla yeni bir proje oluşturun. Windows App SDK sürüm 1.3 veya daha üstü gereklidir.
Paketi ve bağımlılıkları NuGet Paket Yöneticisi kullanarak yükleyin
Calling SDK API'leri ve kütüphaneleri, bir NuGet paketi aracılığıyla genel olarak mevcuttur.
Calling SDK NuGet paketini bulmak, indirmek ve yüklemek için:
- Araçlar>NuGet Paket Yöneticisi>Çözüm İçin NuGet Paketlerini Yönet öğelerini seçerek NuGet Paket Yöneticisini açın.
- "Gözat'ı seçin ve ardından arama kutusuna Azure.Communication.Calling.WindowsClient girin."
- Ön sürümü dahil et onay kutusunun seçili olduğundan emin olun.
- Azure.Communication.Calling.WindowsClient paketini seçin ve ardından Azure.Communication.Calling.WindowsClient1.4.0-beta.1 veya daha yeni bir sürümü seçin.
- Sağ bölmede Azure İletişim Hizmetleri projesine karşılık gelen onay kutusunu seçin.
- Yükle'yi seçin.
El Kaldır özelliği, bir aramadaki katılımcıların konuşmacıyı veya diğer katılımcıları kesintiye uğratmadan bir soru, yorum veya endişeleri olduğunu belirtmelerini sağlar. Bu özelliği, Azure İletişim Hizmeti'nde ve Teams çağrılarında birçok katılımcıyla yapılan 1:1 aramalar ve aramalar dahil olmak üzere herhangi bir arama türünde kullanabilirsiniz.
İlk olarak Arama SDK'sından arama özelliklerini içeri aktarmanız gerekir:
using Azure.Communication.Calling.WindowsClient;
Ardından, arama örneğinden özellik API nesnesini alabilirsiniz.
private RaiseHandCallFeature raiseHandCallFeature;
raiseHandCallFeature = (RaiseHandCallFeature)call.GetCallFeatureExtension(CallFeatureType.RaiseHand);
Geçerli katılımcı için el kaldırma ve indirme
Mevcut katılımcı için El Kaldırma durumunu değiştirmek amacıyla raiseHand() ve lowerHand() yöntemlerini kullanabilirsiniz.
Bu yöntemler eşzamansızdır. Sonuçları doğrulamak için RaisedHandReceived ve LoweredhandReceived dinleyicilerini kullanın.
//publish raise hand state for local participant
raiseHandCallFeature.RaiseHandAsync();
//remove raise hand state for local participant
raiseHandCallFeature.LowerHandAsync();
Diğer katılımcıların elini indir
Diğer katılımcıların alt eli özelliği, Düzenleyici ve Sunucu rollerine sahip kullanıcıların Teams aramalarında diğer katılımcıların tüm ellerini indirmesine olanak tanır. Azure İletişim çağrılarında, önce rollerini eklemediğiniz sürece diğer katılımcıların durumunu değiştiremezsiniz.
Bu özelliği kullanmak için aşağıdaki kodu uygulayın:
// remove raise hand states for all participants on the call
raiseHandCallFeature.LowerAllHandsAsync();
// remove raise hand states for all remote participants on the call
var participants = call.RemoteParticipants;
var identifiers = participants.Select(p => p.Identifier).ToList().AsReadOnly();
raiseHandCallFeature.LowerHandsAsync(identifiers);
// remove raise hand state of specific user
var identifiers = new List<CallIdentifier>();
identifiers.Add(new UserCallIdentifier("USER_ID"));
raiseHandCallFeature.LowerHandsAsync(identifiers);
Değişen durumları yönetme
El Kaldır API'siyle, bir çağrıdaki katılımcıların durumundaki değişiklikleri işlemek için RaisedHandReceived ve LoweredHandReceived olaylarına abone olabilirsiniz. Çağrı örneği bu olayları tetikler ve durumu değişen katılımcı hakkında bilgi sağlar.
Bu olaylara abone olmak için aşağıdaki kodu kullanın:
raiseHandCallFeature = (RaiseHandCallFeature)call.GetCallFeatureExtension(CallFeatureType.RaiseHand);
raiseHandCallFeature.RaisedHandReceived += OnRaisedHandChange;
raiseHandCallFeature.LoweredHandReceived += OnLoweredHandChange;
private async void OnRaisedHandChange(object sender, RaisedHandChangedEventArgs args)
{
Trace.WriteLine("RaiseHandEvent: participant " + args.Identifier + " is raised hand");
}
private async void OnLoweredHandChange(object sender, RaisedHandChangedEventArgs args)
{
Trace.WriteLine("RaiseHandEvent: participant " + args.Identifier + " is lowered hand");
}
RaisedHandReceived ve LoweredHandReceived olayları, katılımcının iletişim tanımlayıcısını temsil eden identifier özelliğine sahip bir nesne içerir. Yukarıdaki örnekte, bir katılımcının elini kaldırdığını belirten bir mesajı konsola kaydederiz.
Etkinliklerden çıkmak için off yöntemini kullanabilirsiniz.
Aktif duruma sahip tüm katılımcıların listesi
Geçerli aramada el durumu yükseltilmiş tüm katılımcılar hakkında bilgi almak için kullanabilirsiniz getRaisedHands. Döndürülen dizi, sıralama alanına göre sıralanmıştır.
Aşağıda, uygulamasının nasıl kullanılacağına yönelik bir örnek verilmişti RaisedHands:
raiseHandCallFeature = (RaiseHandCallFeature)call.GetCallFeatureExtension(CallFeatureType.RaiseHand);
foreach (RaiseHand rh in raiseHandCallFeature.RaisedHands.ToList())
{
Trace.WriteLine("Participant " + rh.Identifier.RawId + " has raised hand ");
}
Kaldırılan Ellerin Sırası
RaisedHands değişkeni, her nesnenin aşağıdaki özelliklere sahip olduğu bir katılımcı nesneleri dizisi içerir:
-
identifier: katılımcının iletişim tanımlayıcısı. -
order: katılımcının elini kaldırdığı sıra.
Bu bilgileri, El Kaldır durumuna ve kuyruktaki sıralarına sahip katılımcıların listesini görüntülemek için kullanabilirsiniz.
Sonraki Adımlar
- Çağrıları nasıl yöneteceğinizi öğrenin
- Video yönetimini öğrenin
- Çağrıları kaydetmeyi öğrenin
- Çağrıları yazıya dökmeyi öğrenin
İlgili makaleler
Teams aramalarında ve toplantılarında El Kaldır özelliğini kullanma hakkında daha fazla bilgi için Microsoft Teams belgelerine bakın.