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.
Video efektleri özelliği, kullanıcıların arka plan bulanıklaştırma ve video değiştirme dahil olmak üzere görüntülü aramalara görsel efektler eklemesine olanak tanır. Bu, özellikle telehealth, telebanking ve sanal işitme gibi bağlamlarda dikkat dağıtıcı öğeleri ortadan kaldırmaya ve hassas bilgileri korumaya yardımcı olur. Arka plan bulanıklaştırma, gizliliği artırır ve özel arka planlar sağlayarak çağrıları daha ilgi çekici ve kişiselleştirilmiş hale getirir.
Not
Çağrı efekti kitaplığıyalnızca WebJS için Azure İletişim Çağrısı istemci kitaplığıyla çalışacak şekilde tasarlanmıştır ve bağımsız olarak kullanılamaz.
Video efektleri uygulama
paketini yükleyin
Önemli
Web Masaüstü tarayıcıları için arka plan bulanıklaştırma ve arka plan değiştirme ga kullanılabilirliği içindedir. Bu hızlı başlangıç, Azure İletişim Hizmetleri Çağrı SDK'sının 1.13.1
sürümü (veya daha üzeri) ve Azure İletişim Hizmetleri Çağrı Efektleri SDK'sının 1.0.1
sürümü veya daha üzerinin kullanıldığı versiyonları kapsamaktadır. Şu anda video arka plan efektleri oluşturmaya yönelik masaüstü tarayıcısı desteği yalnızca Chrome ve Microsoft Edge Masaüstü Tarayıcısı (Windows ve Mac) ve Mac Safari Desktop'ta desteklenmektedir.
Önemli
Android Chrome ve Android Edge mobil tarayıcısı için arka plan bulanıklaştırma ve arka plan değiştirme, derleme 1.34.1 ve sonraki WebJS SDK sürümlerinden itibaren Genel Kullanılabilirlik'te kullanılabilir. Android mobil tarayıcılarında arka plan efektleri uygulamak için çağrı efektleri paketinin 1.1.4 veya üzeri bir sürümünü kullanmanız gerekir.
npm install
JavaScript için Azure İletişim Hizmetleri Efektleri SDK'sını yüklemek için komutunu kullanın.
npm install @azure/communication-calling-effects --save
Çağrı iletişim efektleri npm paketi hakkında daha fazla bilgi için bkz. İletişim çağrı efektleri.
Not
Şu anda iki kullanılabilir video efekti vardır:
- Arka fon bulanıklığı
- Bir resimle arka plan değiştirme (en boy oranı uyumlu olması için 16:9 olmalıdır)
Azure İletişim Çağrısı SDK'sı ile video efektlerini kullanmak için, bir LocalVideoStream
kez oluşturduktan sonra video efektlerini başlatmak/durdurmak için özelliğinin VideoEffects
API'sini almanız LocalVideoStream
gerekir:
import * as AzureCommunicationCallingSDK from '@azure/communication-calling';
import { BackgroundBlurEffect, BackgroundReplacementEffect } from '@azure/communication-calling-effects';
// Get the video effects feature API on the LocalVideoStream
// (here, localVideoStream is the LocalVideoStream object you created while setting up video calling)
const videoEffectsFeatureApi = localVideoStream.feature(AzureCommunicationCallingSDK.Features.VideoEffects);
// Subscribe to useful events
videoEffectsFeatureApi.on(‘effectsStarted’, () => {
// Effects started
});
videoEffectsFeatureApi.on(‘effectsStopped’, () => {
// Effects stopped
});
videoEffectsFeatureApi.on(‘effectsError’, (error) => {
// Effects error
});
Arka fon bulanıklığı
// Create the effect instance
const backgroundBlurEffect = new BackgroundBlurEffect();
// Recommended: Check support by using the isSupported method on the feature API
const backgroundBlurSupported = await videoEffectsFeatureApi.isSupported(backgroundBlurEffect);
if (backgroundBlurSupported) {
// Use the video effects feature API we created to start effects
await videoEffectsFeatureApi.startEffects(backgroundBlurEffect);
}
Bir resimle arka plan değiştirme
Bu efektin arka planı olarak istediğiniz görüntünün URL'sini sağlamanız gerekir.
Önemli
startEffects
URL bir görüntüye ait değilse veya ulaşılamıyorsa/okunamıyorsa yöntem başarısız olur.
Not
Geçerli desteklenen görüntü biçimleri şunlardır: png, jpg, jpeg, tiff, bmp.
Desteklenen geçerli en boy oranı 16:9'dur.
const backgroundImage = 'https://linkToImageFile';
// Create the effect instance
const backgroundReplacementEffect = new BackgroundReplacementEffect({
backgroundImageUrl: backgroundImage
});
// Recommended: Check support by using the isSupported method on the feature API
const backgroundReplacementSupported = await videoEffectsFeatureApi.isSupported(backgroundReplacementEffect);
if (backgroundReplacementSupported) {
// Use the video effects feature API as before to start/stop effects
await videoEffectsFeatureApi.startEffects(backgroundReplacementEffect);
}
Bu efekt için görüntüyü değiştirmek, yapılandırma yöntemi aracılığıyla geçirilerek yapılabilir:
const newBackgroundImage = 'https://linkToNewImageFile';
await backgroundReplacementEffect.configure({
backgroundImageUrl: newBackgroundImage
});
Efektler arasında geçiş, video efektleri özellik API'sinde aynı yöntem kullanılarak yapılabilir:
// Switch to background blur
await videoEffectsFeatureApi.startEffects(backgroundBlurEffect);
// Switch to background replacement
await videoEffectsFeatureApi.startEffects(backgroundReplacementEffect);
Hangi efektlerin etkin olduğunu denetlemek isterseniz istediğiniz zaman özelliğini kullanabilirsiniz activeEffects
.
activeEffects
özelliği geçerli etkin efektlerin adlarını içeren bir dizi döndürür ve etkin efekt yoksa boş bir dizi döndürür.
// Using the video effects feature API
const currentActiveEffects = videoEffectsFeatureApi.activeEffects;
Efektleri durdurmak için:
await videoEffectsFeatureApi.stopEffects();
Buzlu cam arka plan efekti ekleme
Buzlu cam arka planlar, buzlu cam pencerelere benzeyen gelişmiş bir efekt üretmek için bulanık bir arka planın gizliliğini seçili görüntünüzün özelleştirmesiyle birleştirir. Bu etkiyi elde etmek için saydam bir PNG görüntüsünü özel arka planınız olarak karşıya yükleyin. Bu resim şirketinizin logosu veya benzersiz bir tasarım olabilir. Buzlu cam efekti, görüntünüzün saydam alanlarını bulanıklaştırırken grafiği arka planın bir parçası olarak korur. Buzlu cam görünümü kullanmak için, JavaScript paketi için Azure İletişim Çağırma Efektleri kitaplığının 1.1.3
sürüm veya daha yenisini kullanmanız gerekir.
Buzlu PNG görüntüsünü hazırlarken en iyi sonuçları elde etmesi için şunları aklınızda bulundurun:
- Çözünürlük: Yüksek kaliteli arka plan için 1920x1080 piksel kullanın
- Tam opaklıktan kaçının: Logolar gibi renkli içerikler biraz saydamlık ile en iyi şekilde görünür. %75 opaklık öneririz
- Kalıp orta gri ön plan: Saydamlığı olan gri tonlamalı PNG için, saydamlık deseninin hem açık hem de koyu arka planlarda görünür olması için resmin tamamının orta gri (değer 128) olarak görüntülenmesini öneririz.
Not
Azure İletişim Hizmetleri, iOS Arama SDK'sı üzerinde Video Efektleri'ni kullanmak için müşterinin cihazına bir makine öğrenmesi modeli indirir. Uygulamanızdaki gizlilik notlarını gözden geçirmenizi ve gerekirse bunları uygun şekilde güncelleştirmenizi öneririz.
Görüntülü aramalarda videonuza efektler eklemek için Video Efektleri özelliğini kullanabilirsiniz. Arka plan bulanıklaştırma, kullanıcılara katılımcının arkasındaki dikkat dağıtıcı öğeleri kaldırma mekanizması sağlar, böylece katılımcılar arka planda kesintiye neden olan etkinlikler veya gizli bilgiler olmadan iletişim kurabilir.
Bu özellik en çok, bir sağlayıcının veya hastanın hassas bilgileri veya kişisel verileri korumak için çevresini gizleyebileceği telehealth bağlamı açısından kullanışlıdır. Arka plan bulanıklaştırma, kullanıcı gizliliğini korumak için telebanking ve sanal duruşmalar da dahil olmak üzere tüm sanal randevu senaryolarında uygulanabilir.
Video efektleri uygulama
Not
iOS'ta video efektleri desteği, iOS'un en son iki ana sürümüyle sınırlıdır. Örneğin, iOS'un yeni, ana sürümü yayınlandığında, iOS gereksinimi yeni sürüm ve ondan önceki en son sürümdür.
Şu anda kullanılabilir bir Video Efekti vardır: Arka Plan Bulanıklaştırma.
LocalVideoEffectsFeature
nesnesi aşağıdaki API yapısına sahiptir:
-
enable
: Örnek üzerinde Bir Video Efekti etkinleştirirLocalVideoStream
. -
disable
: Örnekte video efektiniLocalVideoStream
devre dışı bırakır. -
isSupported
: Örnekte video efektininLocalVideoStream
desteklenip desteklenmediğini gösterir. -
onVideoEffectEnabled
: Video Efekti başarıyla etkinleştirildiğinde tetiklenen olay. -
onVideoEffectDisabled
: Video Efekti başarıyla devre dışı bırakıldığında tetiklenen olay. -
onVideoEffectError
: Video Efekti işlemi başarısız olduğunda tetiklenen olay.
Nesnesine sahip LocalVideoEffectsFeature
olduktan sonra olaylara abone olabilirsiniz; olaylar şu temsilcilere sahiptir: didEnableVideoEffect
, , didDisableVideoEffect
didReceiveVideoEffectError
.
Azure İletişim Çağrısı SDK'sı ile Video Efektleri'ni kullanmak için, bir LocalVideoStream
oluşturduktan sonra, Video Efektlerini etkinleştirmek veya devre dışı bırakmak amacıyla LocalVideoStream
'nin özellik API'sini almanız gerekir.
// Obtain the Video Effects feature from the LocalVideoStream object that is sending the video.
@State var localVideoEffectsFeature: LocalVideoEffectsFeature?
localVideoEffectsFeature = self.localVideoStreams.first.feature(Features.localVideoEffects)
// Subscribe to the events
public func localVideoEffectsFeature(_ videoEffectsLocalVideoStreamFeature: LocalVideoEffectsFeature, didEnableVideoEffect args: VideoEffectEnabledEventArgs) {
os_log("Video Effect Enabled, VideoEffectName: %s", log:log, args.videoEffectName)
}
public func localVideoEffectsFeature(_ videoEffectsLocalVideoStreamFeature: LocalVideoEffectsFeature, didDisableVideoEffect args: VideoEffectDisabledEventArgs) {
os_log("Video Effect Disabled, VideoEffectName: %s", log:log, args.videoEffectName)
}
public func localVideoEffectsFeature(_ videoEffectsLocalVideoStreamFeature: LocalVideoEffectsFeature, didReceiveVideoEffectError args: VideoEffectErrorEventArgs) {
os_log("Video Effect Error, VideoEffectName: %s, Code: %s, Message: %s", log:log, args.videoEffectName, args.code, args.message)
}
Ardından, Video Efektleri'ni etkinleştirmek ve devre dışı bırakmak için API'leri kullanmaya başlayın:
localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)
Arka fon bulanıklığı
Arka Plan Bulanıklaştırma, uygulamanın bir kişinin arka planını bulanıklaştırmasını sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli bir LocalVideoStream
'den bir LocalVideoEffectsFeature
özelliği edinmeniz gerekir.
Yeni bir Arka Plan Bulanıklaştırma Video Efekti nesnesi oluşturun:
@State var backgroundBlurVideoEffect: BackgroundBlurEffect?
BackgroundBlurEffect
'ün desteklenip desteklenmediğini kontrol edin veEnable
nesne üzerindevideoEffectsFeature
çağrısını yapın.if((localVideoEffectsFeature.isSupported(effect: backgroundBlurVideoEffect)) != nil) { localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect) }
Arka Plan Bulanıklaştırma Video Efektini devre dışı bırakmak için:
localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)
Arka Plan Değiştirme
Arka Plan Değiştirme, bir kişinin kendi özel arka planını ayarlamasını sağlayan bir Video Efektidir. Arka Plan Değiştirme Efekti'ni kullanmak için geçerli bir LocalVideoStream
'den bir LocalVideoEffectsFeature
özelliği edinmeniz gerekir.
Yeni bir Arka Plan Değiştirme Video Efekti nesnesi oluşturun:
@State var backgroundReplacementVideoEffect: BackgroundReplacementEffect?
Görüntüyü arabelleğe geçirerek özel bir arka plan ayarlayın.
let image = UIImage(named:"image.png") guard let imageData = image?.jpegData(compressionQuality: 1.0) else { return } backgroundReplacementVideoEffect.buffer = imageData
BackgroundReplacementEffect
'ün desteklenip desteklenmediğini kontrol edin veEnable
nesne üzerindevideoEffectsFeature
çağrısını yapın.if((localVideoEffectsFeature.isSupported(effect: backgroundReplacementVideoEffect)) != nil) { localVideoEffectsFeature.enable(effect: backgroundReplacementVideoEffect) }
Arka Plan Değiştirme Video Efektini devre dışı bırakmak için:
localVideoEffectsFeature.disable(effect: backgroundReplacementVideoEffect)
Not
Android Arama SDK'sında Video Efektleri'ni kullanmak için müşterinin cihazına bir makine öğrenmesi modeli indirilir. Uygulamanızdaki gizlilik notlarını gözden geçirmenizi ve gerekirse bunları uygun şekilde güncelleştirmenizi öneririz.
Görüntülü aramalarda videonuza efektler eklemek için Video Efektleri özelliğini kullanabilirsiniz. Arka plan bulanıklaştırma, kullanıcılara katılımcının arkasındaki dikkat dağıtıcı öğeleri kaldırma mekanizması sağlar, böylece katılımcılar arka planda kesintiye neden olan etkinlikler veya gizli bilgiler olmadan iletişim kurabilir. Bu özellik, özellikle bir sağlayıcının veya hastanın hassas bilgileri veya kişisel verileri korumak için çevresini gizleyebileceği telehealth bağlamı açısından kullanışlıdır. Arka plan bulanıklaştırma, kullanıcı gizliliğini korumak için telebanking ve sanal duruşmalar da dahil olmak üzere tüm sanal randevu senaryolarında uygulanabilir.
Bu makale, Android için uygulamanıza 1:1 görüntülü arama eklemeye üzerine inşa eder.
Video efektlerini kullanma
Not
Android'de video efektleri desteği, Android'in son dört ana sürümüyle sınırlıdır. Örneğin, Android'in yeni, ana sürümü yayınlandığında, Android gereksinimi yeni sürüm ve ondan önceki en son üç sürümdür.
Şu anda kullanılabilir bir Video Efekti vardır: Arka Plan Bulanıklaştırma.
VideoEffectsLocalVideoStreamFeature
nesnesi aşağıdaki API yapısına sahiptir:
-
enableEffect
: Örnek üzerinde Bir Video Efekti etkinleştirirLocalVideoStream
. -
disableEffect
: Örnekte video efektiniLocalVideoStream
devre dışı bırakır. -
OnVideoEffectEnabledListener
: Video Efekti başarıyla etkinleştirildiğinde tetiklenen olay. -
OnVideoEffectDisabledListener
: Video Efekti başarıyla devre dışı bırakıldığında tetiklenen olay. -
OnVideoEffectErrorListener
: Video Efekti işlemi başarısız olduğunda tetiklenen olay.
VideoEffectEnabledEvent
, VideoEffectDisabledEvent
ve VideoEffectErrorEvent
nesneleri aşağıdaki API yapısına sahiptir:
-
getVideoEffectName
: Olayı tetikleyen Video Efektinin adını alır.
Nesnesine VideoEffectsLocalVideoStreamFeature
sahip olduktan sonra olaylara abone olabilirsiniz:
Azure İletişim Çağrısı SDK'sı ile Video Efektleri'ni kullanmak için, bir LocalVideoStream
oluşturduktan sonra Video Efektleri özelliğini etkinleştirmek veya devre dışı bırakmak için LocalVideoStream
'nin VideoEffects
API'sini almanız gerekir.
// Obtain the Video Effects feature from the LocalVideoStream object that is sending the video.
VideoEffectsLocalVideoStreamFeature videoEffectsFeature = currentVideoStream.feature(Features.LOCAL_VIDEO_EFFECTS);
// Create event handlers for the events
private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
}
private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
}
private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
}
// Subscribe to the events
videoEffectsFeature.addOnVideoEffectEnabledListener(this::handleOnVideoEffectEnabled);
videoEffectsFeature.addOnVideoEffectDisabledListener(this::handleOnVideoEffectDisabled);
videoEffectsFeature.addOnVideoEffectErrorListener(this::handleOnVideoEffectError);
Ardından, Video Efektleri'ni etkinleştirmek ve devre dışı bırakmak için API'leri kullanmaya başlayın:
videoEffectsFeature.enableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
videoEffectsFeature.disableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
Arka fon bulanıklığı
Arka Plan Bulanıklaştırma, uygulamanın bir kişinin arka planını maviye döndürmesini sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için VideoEffectsLocalVideoStreamFeature
'den geçerli bir LocalVideoStream
özelliği edinmeniz gerekir.
Arka Plan Bulanıklaştırma Video Efektini etkinleştirmek için:
-
VideoEFfects
Özelliğini elde eden ve olaylara abone olan bir yöntem oluşturun.
private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
Log.i("VideoEffects", "Effect enabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
Log.i("VideoEffects", "Effect disabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
Log.i("VideoEffects", "Error " + args.getCode() + ":" + args.getMessage()
+ " for effect " + args.getVideoEffectName());
}
VideoEffectsLocalVideoStreamFeature videoEffectsFeature;
public void createVideoEffectsFeature() {
videoEffectsFeature = currentVideoStream.feature(Features.LOCAL_VIDEO_EFFECTS);
videoEffectsFeature.addOnVideoEffectEnabledListener(this::handleOnVideoEffectEnabled);
videoEffectsFeature.addOnVideoEffectDisabledListener(this::handleOnVideoEffectDisabled);
videoEffectsFeature.addOnVideoEffectErrorListener(this::handleOnVideoEffectError);
}
- Yeni bir Arka Plan Bulanıklaştırma Video Efekti nesnesi oluşturun:
BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
-
EnableEffect
çağrısınıvideoEffectsFeature
nesnesinde yapın.
public void enableBackgroundBlur() {
videoEffectsFeature.enableEffect(backgroundBlurEffect);
}
Arka Plan Bulanıklaştırma Video Efektini devre dışı bırakmak için:
public void disableBackgroundBlur() {
videoEffectsFeature.disableEffect(backgroundBlurEffect);
}
Arka plan değiştirme
Arka Plan Değiştirme, bir kişinin arka planının değiştirilmesini sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için VideoEffectsLocalVideoStreamFeature
'den geçerli bir LocalVideoStream
özelliği edinmeniz gerekir.
Arka Plan Değiştirme Video Efektini etkinleştirmek için:
-
VideoEFfects
Özelliğini elde eden ve olaylara abone olan bir yöntem oluşturun.
private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
Log.i("VideoEffects", "Effect enabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
Log.i("VideoEffects", "Effect disabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
Log.i("VideoEffects", "Error " + args.getCode() + ":" + args.getMessage()
+ " for effect " + args.getVideoEffectName());
}
VideoEffectsLocalVideoStreamFeature videoEffectsFeature;
public void createVideoEffectsFeature() {
videoEffectsFeature = currentVideoStream.feature(Features.LOCAL_VIDEO_EFFECTS);
videoEffectsFeature.addOnVideoEffectEnabledListener(this::handleOnVideoEffectEnabled);
videoEffectsFeature.addOnVideoEffectDisabledListener(this::handleOnVideoEffectDisabled);
videoEffectsFeature.addOnVideoEffectErrorListener(this::handleOnVideoEffectError);
}
- Yeni bir Arka Plan Değiştirme Video Efekti nesnesi oluşturun:
BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
- Görüntüyü arabelleğe geçirerek özel bir arka plan ayarlayın.
//example of where we can get an image from, in this case, this is from assets in Android folder
InputStream inputStream = getAssets().open("image.jpg");
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] data = stream.toByteArray();
ByteBuffer dataBuffer = ByteBuffer.allocateDirect(data.length);
dataBuffer.put(data);
dataBuffer.rewind();
backgroundReplacementVideoEffect.setBuffer(dataBuffer);
-
EnableEffect
çağrısınıvideoEffectsFeature
nesnesinde yapın.
public void enableBackgroundReplacement() {
videoEffectsFeature.enableEffect(backgroundReplacementVideoEffect);
}
Arka Plan Değiştirme Video Efektini devre dışı bırakmak için:
public void disableBackgroundReplacement() {
videoEffectsFeature.disableEffect(backgroundReplacementVideoEffect);
}
Not
Windows Arama SDK'sı üzerinde Video Efektleri'ni kullanmak için müşterinin cihazına bir makine öğrenmesi modeli indirilir. Uygulamanızdaki gizlilik notlarını gözden geçirmenizi ve gerekirse bunları uygun şekilde güncelleştirmenizi öneririz.
Görüntülü aramalarda videonuza efektler eklemek için Video Efektleri özelliğini kullanabilirsiniz. Arka plan bulanıklaştırma, kullanıcılara katılımcının arkasındaki dikkat dağıtıcı öğeleri kaldırma mekanizması sağlar, böylece katılımcılar arka planda kesintiye neden olan etkinlikler veya gizli bilgiler olmadan iletişim kurabilir.
Bu özellik en çok, bir sağlayıcının veya hastanın hassas bilgileri veya kişisel verileri korumak için çevresini gizleyebileceği telehealth bağlamı açısından kullanışlıdır. Arka plan bulanıklaştırma, kullanıcı gizliliğini korumak için telebanking ve sanal duruşmalar da dahil olmak üzere tüm sanal randevu senaryolarında uygulanabilir.
Bu makale, Windows için uygulamanıza 1:1 görüntülü arama ekleme başlıklı makale üzerine inşa edilmiştir.
Video efektlerini kullanma
Şu anda kullanılabilir bir Video Efekti vardır: Arka Plan Bulanıklaştırma.
VideoEffectsLocalVideoStreamFeature
nesnesi aşağıdaki API yapısına sahiptir:
-
EnableEffect
: Örnek üzerinde Bir Video Efekti etkinleştirirLocalVideoStream
. -
DisableEffect
: Örnekte video efektiniLocalVideoStream
devre dışı bırakır. -
VideoEffectEnabled
: Video Efekti başarıyla etkinleştirildiğinde tetiklenen olay. -
VideoEffectDisabledListener
: Video Efekti başarıyla devre dışı bırakıldığında tetiklenen olay. -
VideoEffectErrorListener
: Video Efekti işlemi başarısız olduğunda tetiklenen olay.
VideoEffectEnabledEvent
, VideoEffectDisabledEvent
ve VideoEffectErrorEvent
nesneleri aşağıdaki API yapısına sahiptir:
-
VideoEffectName
: Olayı tetikleyen Video Efektinin adını alır.
Nesnesine VideoEffectsLocalVideoStreamFeature
sahip olduktan sonra olaylara abone olabilirsiniz:
Azure İletişim Çağırma SDK'sı ile Video Efektleri'ni kullanmak için değişkenleri MainPage'e ekleyin.
public sealed partial class MainPage : Page
{
private LocalVideoEffectsFeature localVideoEffectsFeature;
}
Bir LocalVideoStream
oluşturduktan sonra, video efektlerini etkinleştirmek/devre dışı bırakmak için VideoEffects
özelliğinin LocalVideoStream
API'sini almanız gerekir.
private async void CameraList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedCamera = CameraList.SelectedItem as VideoDeviceDetails;
cameraStream = new LocalOutgoingVideoStream(selectedCamera);
InitVideoEffectsFeature(cameraStream);
var localUri = await cameraStream.StartPreviewAsync();
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
LocalVideo.Source = MediaSource.CreateFromUri(localUri);
});
}
public void InitVideoEffectsFeature(LocalOutgoingVideoStream videoStream){
localVideoEffectsFeature = videoStream.Features.VideoEffects;
localVideoEffectsFeature.VideoEffectEnabled += LocalVideoEffectsFeature_VideoEffectEnabled;
localVideoEffectsFeature.VideoEffectDisabled += LocalVideoEffectsFeature_VideoEffectDisabled;
localVideoEffectsFeature.VideoEffectError += LocalVideoEffectsFeature_VideoEffectError;
}
// Create event handlers for the events
private void LocalVideoEffectsFeature_VideoEffectEnabled(object sender, VideoEffectEnabledEventArgs args)
{
}
private void LocalVideoEffectsFeature_VideoEffectDisabled(object sender, VideoEffectDisabledEventArgs args)
{
}
private void LocalVideoEffectsFeature_VideoEffectError(object sender, VideoEffectErrorEventArgs args)
{
}
// Subscribe to the events
videoEffectsFeature.VideoEffectEnabled += VideoEffectsFeature_OnVideoEffectEnabled;
videoEffectsFeature.VideoEffectDisabled += VideoEffectsFeature_OnVideoEffectDisabled;
videoEffectsFeature.VideoEffectError += VideoEffectsFeature_OnVideoEffectError;
Ardından, Video Efektleri'ni etkinleştirmek ve devre dışı bırakmak için API'leri kullanmaya başlayın:
videoEffectsLocalVideoStreamFeature.EnableEffect( {{VIDEO_EFFECT_TO_ENABLE}} );
videoEffectsLocalVideoStreamFeature.DisableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
Arka fon bulanıklığı
Arka Plan Bulanıklaştırma, uygulamanın bir kişinin arka planını bulanıklaştırmasını sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli bir LocalVideoStream
'den bir VideoEffectsLocalVideoStreamFeature
özelliği edinmeniz gerekir.
Arka Plan Bulanıklaştırma Video Efektini etkinleştirmek için:
-
BackgroundBlurEffect
Örneği MainPage'e ekleyin.
public sealed partial class MainPage : Page
{
private BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
}
-
VideoEFfects
Özelliğini elde eden ve olaylara abone olan bir yöntem oluşturun.
private async void LocalVideoEffectsFeature_VideoEffectEnabled(object sender, VideoEffectEnabledEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
BackgroundBlur.IsChecked = true;
});
}
private async void LocalVideoEffectsFeature_VideoEffectDisabled(object sender, VideoEffectDisabledEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
BackgroundBlur.IsChecked = false;
});
}
private void LocalVideoEffectsFeature_VideoEffectError(object sender, VideoEffectErrorEventArgs e)
{
String effectName = args.VideoEffectName;
String errorCode = args.Code;
String errorMessage = args.Message;
Trace.WriteLine("VideoEffects VideoEffectError on effect " + effectName + "with code "
+ errorCode + "and error message " + errorMessage);
}
- Arka Plan Bulanıklaştırma efektini etkinleştirin ve devre dışı bırakın:
private async void BackgroundBlur_Click(object sender, RoutedEventArgs e)
{
if (localVideoEffectsFeature.IsEffectSupported(backgroundBlurVideoEffect))
{
var backgroundBlurCheckbox = sender as CheckBox;
if (backgroundBlurCheckbox.IsChecked.Value)
{
localVideoEffectsFeature.EnableEffect(backgroundBlurVideoEffect);
}
else
{
localVideoEffectsFeature.DisableEffect(backgroundBlurVideoEffect);
}
}
}
Arka plan değiştirme
Arka Plan Değiştirme, uygulamanın bir kişinin arka planını değiştirmesini sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için VideoEffectsLocalVideoStreamFeature
'den geçerli bir LocalVideoStream
özelliği edinmeniz gerekir.
Arka Plan Değiştirme Video Efektini etkinleştirmek için:
-
BackgroundReplacementEffect
Örneği MainPage'e ekleyin.
public sealed partial class MainPage : Page
{
private BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
}
-
VideoEFfects
Özelliğini elde eden ve olaylara abone olan bir yöntem oluşturun.
private async void LocalVideoEffectsFeature_VideoEffectEnabled(object sender, VideoEffectEnabledEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
BackgroundReplacement.IsChecked = true;
});
}
private async void LocalVideoEffectsFeature_VideoEffectDisabled(object sender, VideoEffectDisabledEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
BackgroundReplacement.IsChecked = false;
});
}
private void LocalVideoEffectsFeature_VideoEffectError(object sender, VideoEffectErrorEventArgs e)
{
String effectName = args.VideoEffectName;
String errorCode = args.Code;
String errorMessage = args.Message;
Trace.WriteLine("VideoEffects VideoEffectError on effect " + effectName + "with code "
+ errorCode + "and error message " + errorMessage);
}
- Görüntüyü arabelleğe geçirerek özel bir arka plan ayarlayın.
//example of getting the image from storage folder
MemoryBuffer memoryBuffer = new MemoryBuffer(0);
StorageFolder InstallationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile file = InstallationFolder.GetFileAsync("image.jpg").GetAwaiter().GetResult();
if (File.Exists(file.Path))
{
byte[] imageBytes = File.ReadAllBytes(file.Path);
memoryBuffer = new MemoryBuffer((uint)imageBytes.Length);
using (IMemoryBufferReference reference = memoryBuffer.CreateReference())
{
byte* dataInBytes;
uint capacityInBytes;
(reference.As<IMemoryBufferByteAccess>()).GetBuffer(out dataInBytes, out capacityInBytes);
for (int i = 0; i < imageBytes.Length; i++)
{
dataInBytes[i] = imageBytes[i];
}
}
return memoryBuffer;
}
backgroundReplacementVideoEffect.Buffer = memoryBuffer;
- Arka Plan Değiştirme efektini etkinleştirin ve devre dışı bırakın:
private async void BackgroundReplacement_Click(object sender, RoutedEventArgs e)
{
if (localVideoEffectsFeature.IsEffectSupported(backgroundReplacementVideoEffect))
{
var backgroundReplacementCheckbox = sender as CheckBox;
if (backgroundReplacementCheckbox.IsChecked.Value)
{
localVideoEffectsFeature.EnableEffect(backgroundReplacementVideoEffect);
}
else
{
localVideoEffectsFeature.DisableEffect(backgroundReplacementVideoEffect);
}
}
}
Sonraki adımlar
- Kahraman örneğimize göz atın.
- Kullanıcı Arabirimi Kitaplığı'nı kullanmaya başlayın.
- SDK'ları çağırma özellikleri hakkında bilgi edinin.
- Aramanın nasıl çalıştığı hakkında daha fazla bilgi edinin.