Hızlı Başlangıç: Görüntülü aramalarınıza video efektleri ekleme
Görüntülü aramalarda videonuza efektler eklemek için Video efektleri özelliğini kullanabilirsiniz. Bu özellik, geliştiricilerin arama deneyimine arka plan görsel efektleri ve arka plan videosu değişimi oluşturmasını sağlar. 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, özellikle bir sağlayıcının veya hastanın hassas bilgileri veya kişisel bilgileri 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. Gelişmiş gizliliğe ek olarak, arka plan bulanıklaştırma, kullanıcıların daha eğlenceli ve kişiselleştirilmiş bir arama deneyimine ev sahipliği yapmak için özel arka planları karşıya yüklemelerine olanak tanıyarak ifadenin daha yaratıcı olmasını sağlar.
Not
Çağırma efekti kitaplığı tek başına kullanılamaz ve yalnızca WebJShttps://www.npmjs.com/package/@azure/communication-calling ( için Azure İletişim Çağrısı istemci kitaplığıyla kullanıldığında kullanılabilir).
Video efektlerini kullanma
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ıçta Azure İletişim Hizmetleri Çağırma SDK'sı 1.13.1
sürümü (veya üzeri) ve Azure İletişim Hizmetleri Çağrı Efektleri SDK'sı sürümünden büyük veya sürümünden daha büyük kullanılır1.0.1
. Şu anda video arka plan efektleri oluşturmaya yönelik masaüstü tarayıcı desteği yalnızca Chrome ve Edge Masaüstü Tarayıcısı (Windows ve Mac) ve Mac Safari Desktop'ta desteklenmektedir.
Not
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.29.1 ve sonraki beta WebJS SDK sürümlerinden itibaren genel önizlemede kullanılabilir.
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 paket sayfası hakkında daha fazla bilgi için buraya bakın.
Not
Şu anda iki kullanılabilir video efekti vardır:
- Arka plan bulanıklaştırma
- 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
oluşturduktan sonra video efektlerini başlatmak/durdurmak için özelliğinin LocalVideoStream
API'sini almanız VideoEffects
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 plan bulanıklaştırma
// 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ü değilse veya erişilemiyorsa/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();
Not
iOS 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.
Video efektlerini kullanma
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
.
Video Efektleri'ni Azure İletişim Çağrısı SDK'sı ile kullanmak için, bir LocalVideoStream
oluşturduktan sonra Video Efektlerini etkinleştirmek/devre dışı bırakmak için özelliğinin LocalVideoStream
API'sini almanız VideoEffects
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)
}
ve 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 plan bulanıklaştırma
Arka Plan Bulanıklaştırma, bir kişinin arka planının bulanık olmasına olanak tanıyan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli LocalVideoStream
bir 'den bir LocalVideoEffectsFeature
özellik edinmeniz gerekir.
- Yeni bir Arka Plan Bulanıklaştırma Video Efekti nesnesi oluşturun:
@State var backgroundBlurVideoEffect: BackgroundBlurEffect?
- Desteklenip desteklenmediğini
BackgroundBlurEffect
denetleyin ve nesne üzerinde çağrısıEnable
yapınvideoEffectsFeature
:
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ına olanak tanıyan bir Video Efektidir. Arka Plan Değiştirme Efekti'ni kullanmak için geçerli LocalVideoStream
bir 'den bir LocalVideoEffectsFeature
özellik 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
- Desteklenip desteklenmediğini
BackgroundReplacementEffect
denetleyin ve nesne üzerinde çağrısıEnable
yapınvideoEffectsFeature
:
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 hızlı başlangıçta Hızlı Başlangıç: Android için uygulamanıza 1:1 görüntülü arama ekleme adımları temel alır.
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:
Video Efektleri'ni Azure İletişim Çağrısı SDK'sı ile kullanmak için, bir LocalVideoStream
oluşturduktan sonra Video Efektlerini etkinleştirmek/devre dışı bırakmak için özelliğinin LocalVideoStream
API'sini almanız VideoEffects
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);
ve 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 plan bulanıklaştırma
Arka Plan Bulanıklaştırma, bir kişinin arka planının bulanık olmasına olanak tanıyan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli LocalVideoStream
bir 'den bir VideoEffectsLocalVideoStreamFeature
özellik edinmeniz gerekir.
Arka Plan Bulanıklaştırma Video Efektini etkinleştirmek için:
- Özellik'in olaylara
VideoEFfects
abone olmasını sağlayan bir yöntem oluşturun:
private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
Log.i("VideoEfects", "Effect enabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
Log.i("VideoEfects", "Effect disabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
Log.i("VideoEfects", "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();
- nesnesinde
videoEffectsFeature
çağrısıEnableEffect
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 geçerli LocalVideoStream
bir 'den bir VideoEffectsLocalVideoStreamFeature
özellik edinmeniz gerekir.
Arka Plan Değiştirme Video Efektini etkinleştirmek için:
- Özellik'in olaylara
VideoEFfects
abone olmasını sağlayan bir yöntem oluşturun:
private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
Log.i("VideoEfects", "Effect enabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
Log.i("VideoEfects", "Effect disabled for effect " + args.getVideoEffectName());
}
private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
Log.i("VideoEfects", "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);
- nesnesinde
videoEffectsFeature
çağrısıEnableEffect
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ı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 hızlı başlangıçta Hızlı Başlangıç: Windows için uygulamanıza 1:1 görüntülü arama ekleme adımları temel alır.
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 özelliğinin LocalVideoStream
API'sini almanız VideoEffects
gerekir.
private async void CameraList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedCamerea = CameraList.SelectedItem as VideoDeviceDetails;
cameraStream = new LocalOutgoingVideoStream(selectedCamerea);
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;
ve 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 plan bulanıklaştırma
Arka Plan Bulanıklaştırma, bir kişinin arka planının bulanık olmasına olanak tanıyan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli LocalVideoStream
bir 'den bir VideoEffectsLocalVideoStreamFeature
özellik 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();
}
- Özellik'in olaylara
VideoEFfects
abone olmasını sağlayan 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, bir kişinin arka planının değiştirilmesini sağlayan bir Video Efektidir. Arka Plan Video Efekti'ni kullanmak için geçerli LocalVideoStream
bir 'den bir VideoEffectsLocalVideoStreamFeature
özellik 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();
}
- Özellik'in olaylara
VideoEFfects
abone olmasını sağlayan 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
Daha fazla bilgi için aşağıdaki makaleleri inceleyin:
- Çağrı hero örneğimize göz atın
- Kullanıcı Arabirimi Kitaplığı'nı kullanmaya başlama
- SDK'ları çağırma özellikleri hakkında bilgi edinin
- Aramanın nasıl çalıştığı hakkında daha fazla bilgi edinin