Bagikan melalui


Aktifkan efek latar belakang video

Fitur Efek video memungkinkan pengguna menambahkan efek visual ke panggilan video, termasuk kabur latar belakang dan penggantian video. Ini membantu menghilangkan gangguan dan melindungi informasi sensitif, terutama dalam konteks seperti telehealth, telebanking, dan pendengaran virtual. Fitur kabur latar belakang meningkatkan privasi dan memungkinkan penggunaan latar belakang kustom, membuat panggilan lebih menarik dan lebih personal.

Nota

Pustaka efek panggilandirancang untuk bekerja secara eksklusif dengan pustaka klien Azure Communication Calling untuk WebJS dan tidak dapat digunakan secara independen.

Menerapkan efek video

Pasang paketnya

Penting

Latar belakang kabur dan penggantian latar belakang untuk browser Web Desktop berada dalam ketersediaan GA. Panduan cepat ini menggunakan versi SDK Panggilan Azure Communication Services 1.13.1 atau lebih baru dan versi SDK Efek Panggilan Azure Communication Services yang sama dengan atau lebih besar dari 1.0.1. Saat ini dukungan browser desktop untuk membuat efek latar belakang video hanya didukung di Chrome dan Microsoft Edge Desktop Browser (Windows dan Mac) dan Mac Safari Desktop.

Penting

Latar belakang kabur dan penggantian latar belakang untuk Android Chrome dan browser seluler Android Edge tersedia di Ketersediaan Umum mulai dari build 1.34.1 dan versi WebJS SDK yang lebih baru. Anda harus menggunakan versi 1.1.4 atau yang lebih tinggi dari paket efek panggilan untuk menerapkan efek latar belakang pada browser seluler Android.

Gunakan perintah npm install untuk menginstal Azure Communication Services Effects SDK untuk JavaScript.

npm install @azure/communication-calling-effects --save

Untuk informasi selengkapnya tentang paket npm efek komunikasi panggilan, lihat Efek panggilan komunikasi.

Nota

Saat ini ada dua efek video yang tersedia:

  • Kabur latar belakang
  • Penggantian latar belakang dengan gambar (rasio aspek harus 16:9 agar kompatibel)

Untuk menggunakan efek video dengan Azure Communication Calling SDK, setelah Anda membuat LocalVideoStream, Anda perlu memperoleh API fitur VideoEffects dari LocalVideoStream untuk memulai/menghentikan efek video:

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
});

Kabur latar belakang

// 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); 
}

Penggantian latar belakang dengan gambar

Anda perlu memberikan URL gambar yang Anda inginkan sebagai latar belakang untuk efek ini.

Penting

Metode startEffects gagal jika URL bukan gambar atau tidak dapat dijangkau/tidak dapat dibaca.

Nota

Format gambar yang didukung saat ini adalah: png, jpg, jpeg, tiff, bmp.

Rasio aspek yang didukung saat ini adalah 16:9.

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); 
}

Mengubah gambar untuk efek ini dapat dilakukan dengan meneruskannya melalui metode konfigurasi:

const newBackgroundImage = 'https://linkToNewImageFile'; 

await backgroundReplacementEffect.configure({ 
    backgroundImageUrl: newBackgroundImage
});

Efek pengalihan dapat dilakukan menggunakan metode yang sama pada API fitur efek video:

// Switch to background blur 
await videoEffectsFeatureApi.startEffects(backgroundBlurEffect); 

// Switch to background replacement 
await videoEffectsFeatureApi.startEffects(backgroundReplacementEffect);

Kapan saja jika Anda ingin memeriksa efek apa yang aktif, Anda dapat menggunakan activeEffects properti .

Properti activeEffects mengembalikan array dengan nama efek aktif saat ini, dan mengembalikan array kosong jika tidak ada efek aktif.

// Using the video effects feature API
const currentActiveEffects = videoEffectsFeatureApi.activeEffects;

Untuk menghentikan efek:

await videoEffectsFeatureApi.stopEffects();

Menambahkan efek latar belakang kaca beku

Latar belakang kaca beku menggabungkan privasi latar belakang kabur dengan penyesuaian gambar yang Anda pilih untuk menghasilkan efek canggih yang menyerupai jendela kaca beku. Untuk mencapai efek ini, unggah gambar PNG transparan sebagai latar belakang kustom Anda. Gambar ini bisa menjadi logo perusahaan Anda atau desain yang unik. Efek kaca beku mengaburkan area transparan gambar Anda, sambil mempertahankan grafik sebagai bagian dari latar belakang. Untuk menggunakan tampilan kaca beku, Anda harus menggunakan versi 1.1.3 atau yang lebih tinggi dari pustaka Efek Panggilan Komunikasi Azure untuk paket JavaScript .

Untuk hasil terbaik saat menyiapkan gambar PNG beku, perlu diingat:

  • Resolusi: Gunakan 1920x1080 piksel untuk latar belakang berkualitas tinggi
  • Hindari keburaman penuh: Konten berwarna seperti logo terlihat terbaik dengan sedikit transparansi. Kami merekomendasikan keburaman 75%
  • Stensil latar depan abu-abu tengah: Untuk PNG skala abu-abu dengan transparansi, kami sarankan memiliki gambar penuh dalam abu-abu tengah (nilai 128) sehingga pola transparansi terlihat pada latar belakang yang terang dan gelap.

Nota

Untuk menggunakan Efek Video pada iOS Calling SDK, Azure Communication Services mengunduh model pembelajaran mesin ke perangkat pelanggan. Kami mendorong Anda untuk meninjau catatan privasi di aplikasi Anda dan memperbaruinya sesuai kebutuhan, jika perlu.

Anda dapat menggunakan fitur Efek Video untuk menambahkan efek ke video Anda dalam panggilan video. Blur latar belakang memberi pengguna mekanisme untuk menghapus gangguan di belakang peserta sehingga peserta dapat berkomunikasi tanpa aktivitas yang mengganggu atau informasi rahasia di latar belakang.

Fitur ini paling berguna konteks telehealth, di mana penyedia atau pasien mungkin ingin mengaburkan lingkungan mereka untuk melindungi informasi sensitif atau data pribadi. Efek pengaburan latar belakang dapat diterapkan di semua skenario pertemuan virtual, termasuk telebanking dan sidang virtual, untuk melindungi privasi pengguna.

Menerapkan efek video

Nota

Dukungan efek video pada iOS terbatas pada dua versi utama terbaru iOS. Misalnya, ketika iOS versi utama baru dirilis, persyaratan iOS adalah versi baru dan versi terbaru yang mendahuluinya.

Saat ini ada satu Efek Video yang tersedia: Blur Latar Belakang.

Objek LocalVideoEffectsFeature memiliki struktur API berikut:

  • enable: Mengaktifkan Efek Video pada LocalVideoStream instans.
  • disable: Menonaktifkan Efek Video pada LocalVideoStream instans.
  • isSupported: Menunjukkan apakah Efek Video didukung pada LocalVideoStream instans.
  • onVideoEffectEnabled: Peristiwa yang dipicu saat Efek Video berhasil diaktifkan.
  • onVideoEffectDisabled: Peristiwa yang dipicu saat Efek Video berhasil dinonaktifkan.
  • onVideoEffectError: Peristiwa yang dipicu saat operasi Efek Video gagal.

Setelah Anda memiliki LocalVideoEffectsFeature objek, Anda dapat berlangganan peristiwa, peristiwa memiliki delegasi berikut: didEnableVideoEffect, , didDisableVideoEffectdidReceiveVideoEffectError.

Untuk menggunakan Efek Video dengan Azure Communication Calling SDK, setelah Anda membuat LocalVideoStream, Anda perlu mendapatkan API fitur LocalVideoStream untuk mengaktifkan/menonaktifkan Efek Video:

// 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)
}

Kemudian mulai gunakan API untuk mengaktifkan dan menonaktifkan Efek Video:

localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)

Kabur latar belakang

Background Blur adalah Efek Video yang memungkinkan aplikasi mengaburkan latar belakang seseorang. Untuk menggunakan Efek Video Latar Belakang, Anda perlu mendapatkan fitur LocalVideoEffectsFeature dari LocalVideoStream yang valid.

  • Buat objek Efek Video Blur Latar Belakang baru:

    @State var backgroundBlurVideoEffect: BackgroundBlurEffect?
    
  • Periksa apakah BackgroundBlurEffect didukung dan panggil Enable pada videoEffectsFeature objek:

    if((localVideoEffectsFeature.isSupported(effect: backgroundBlurVideoEffect)) != nil)
    {
        localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
    }
    

Untuk menonaktifkan Efek Video Kabur Latar Belakang:

localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)

Penggantian Latar Belakang

Penggantian Latar Belakang adalah Efek Video yang memungkinkan seseorang mengatur latar belakang kustom mereka sendiri. Untuk menggunakan Efek Penggantian Latar Belakang, Anda perlu mendapatkan fitur LocalVideoEffectsFeature dari LocalVideoStream yang sah.

  • Buat objek Efek Video Penggantian Latar Belakang baru:

    @State var backgroundReplacementVideoEffect: BackgroundReplacementEffect?
    
  • Atur latar belakang kustom dengan meneruskan gambar melalui buffer.

    let image = UIImage(named:"image.png")
    guard let imageData = image?.jpegData(compressionQuality: 1.0) else {
    return
    }
    backgroundReplacementVideoEffect.buffer = imageData
    
  • Periksa apakah BackgroundReplacementEffect didukung dan panggil Enable pada videoEffectsFeature objek:

    if((localVideoEffectsFeature.isSupported(effect: backgroundReplacementVideoEffect)) != nil)
    {
        localVideoEffectsFeature.enable(effect: backgroundReplacementVideoEffect)
    }
    

Untuk menonaktifkan Efek Video Penggantian Latar Belakang:

localVideoEffectsFeature.disable(effect: backgroundReplacementVideoEffect)

Nota

Untuk menggunakan Efek Video pada Android Calling SDK, model pembelajaran mesin diunduh ke perangkat pelanggan. Kami mendorong Anda untuk meninjau catatan privasi di aplikasi Anda dan memperbaruinya sesuai kebutuhan, jika perlu.

Anda dapat menggunakan fitur Efek Video untuk menambahkan efek ke video Anda dalam panggilan video. Blur latar belakang memberi pengguna mekanisme untuk menghapus gangguan di belakang peserta sehingga peserta dapat berkomunikasi tanpa aktivitas yang mengganggu atau informasi rahasia di latar belakang. Fitur ini sangat berguna konteks telehealth, di mana penyedia atau pasien mungkin ingin mengaburkan lingkungan mereka untuk melindungi informasi sensitif atau data pribadi. Efek pengaburan latar belakang dapat diterapkan di semua skenario pertemuan virtual, termasuk telebanking dan sidang virtual, untuk melindungi privasi pengguna.

Artikel ini dibuat berdasarkan Tambahkan panggilan video 1:1 ke aplikasi Anda untuk Android.

Menggunakan efek video

Nota

Dukungan efek video di Android terbatas pada empat versi utama Android terakhir . Misalnya, ketika Android versi utama baru dirilis, persyaratan Android adalah versi baru dan tiga versi terbaru yang mendahuluinya.

Saat ini ada satu Efek Video yang tersedia: Blur Latar Belakang.

Objek VideoEffectsLocalVideoStreamFeature memiliki struktur API berikut:

  • enableEffect: Mengaktifkan Efek Video pada LocalVideoStream instans.
  • disableEffect: Menonaktifkan Efek Video pada LocalVideoStream instans.
  • OnVideoEffectEnabledListener: Peristiwa yang dipicu saat Efek Video berhasil diaktifkan.
  • OnVideoEffectDisabledListener: Peristiwa yang dipicu saat Efek Video berhasil dinonaktifkan.
  • OnVideoEffectErrorListener: Peristiwa yang dipicu saat operasi Efek Video gagal.

Objek VideoEffectEnabledEvent, VideoEffectDisabledEvent, dan VideoEffectErrorEvent memiliki struktur API berikut:

  • getVideoEffectName: Mendapatkan nama Efek Video yang memicu peristiwa.

Setelah memiliki VideoEffectsLocalVideoStreamFeature objek, Anda dapat berlangganan peristiwa:

Untuk menggunakan Efek Video dengan Azure Communication Calling SDK, setelah Anda membuat LocalVideoStream, Anda harus mendapatkan fitur API dari LocalVideoStream untuk mengaktifkan/menonaktifkan Efek Video:

// 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);

Kemudian mulai gunakan API untuk mengaktifkan dan menonaktifkan Efek Video:

videoEffectsFeature.enableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
videoEffectsFeature.disableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );

Kabur latar belakang

Background Blur adalah efek video yang memungkinkan aplikasi mengaburkan latar belakang seseorang. Untuk menggunakan Efek Video Latar Belakang, Anda perlu memperoleh VideoEffectsLocalVideoStreamFeature dari LocalVideoStream yang valid.

Untuk mengaktifkan Efek Video Kabur Latar Belakang:

  • Buat metode yang mendapatkan VideoEFfects Fitur berlangganan peristiwa:
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);
}

  • Buat objek Efek Video Blur Latar Belakang baru:
BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
  • Panggil EnableEffect pada videoEffectsFeature objek:
public void enableBackgroundBlur() {
    videoEffectsFeature.enableEffect(backgroundBlurEffect);
}

Untuk menonaktifkan Efek Video Kabur Latar Belakang:

public void disableBackgroundBlur() {
    videoEffectsFeature.disableEffect(backgroundBlurEffect);
}

Penggantian latar belakang

Penggantian Latar Belakang adalah Efek Video yang memungkinkan latar belakang seseorang diganti. Untuk menggunakan Efek Video Latar Belakang, Anda perlu memperoleh VideoEffectsLocalVideoStreamFeature dari LocalVideoStream yang valid.

Untuk mengaktifkan Efek Video Penggantian Latar Belakang:

  • Buat metode yang mendapatkan VideoEFfects Fitur berlangganan peristiwa:
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);
}

  • Buat objek Efek Video Penggantian Latar Belakang baru:
BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
  • Atur latar belakang kustom dengan meneruskan gambar melalui buffer.
//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);
  • Panggil EnableEffect pada videoEffectsFeature objek:
public void enableBackgroundReplacement() {
    videoEffectsFeature.enableEffect(backgroundReplacementVideoEffect);
}

Untuk menonaktifkan Efek Video Penggantian Latar Belakang:

public void disableBackgroundReplacement() {
    videoEffectsFeature.disableEffect(backgroundReplacementVideoEffect);
}

Nota

Untuk menggunakan Efek Video pada Windows Calling SDK, model pembelajaran mesin diunduh ke perangkat pelanggan. Kami mendorong Anda untuk meninjau catatan privasi di aplikasi Anda dan memperbaruinya sesuai kebutuhan, jika perlu.

Anda dapat menggunakan fitur Efek Video untuk menambahkan efek ke video Anda dalam panggilan video. Blur latar belakang memberi pengguna mekanisme untuk menghapus gangguan di belakang peserta sehingga peserta dapat berkomunikasi tanpa aktivitas yang mengganggu atau informasi rahasia di latar belakang.

Fitur ini paling berguna konteks telehealth, di mana penyedia atau pasien mungkin ingin mengaburkan lingkungan mereka untuk melindungi informasi sensitif atau data pribadi. Efek pengaburan latar belakang dapat diterapkan di semua skenario pertemuan virtual, termasuk telebanking dan sidang virtual, untuk melindungi privasi pengguna.

Artikel ini dibuat berdasarkan Tambahkan panggilan video 1:1 ke aplikasi Anda untuk Windows.

Menggunakan efek video

Saat ini ada satu Efek Video yang tersedia: Blur Latar Belakang.

Objek VideoEffectsLocalVideoStreamFeature memiliki struktur API berikut:

  • EnableEffect: Mengaktifkan Efek Video pada LocalVideoStream instans.
  • DisableEffect: Menonaktifkan Efek Video pada LocalVideoStream instans.
  • VideoEffectEnabled: Peristiwa yang dipicu saat Efek Video berhasil diaktifkan.
  • VideoEffectDisabledListener: Peristiwa yang dipicu saat Efek Video berhasil dinonaktifkan.
  • VideoEffectErrorListener: Peristiwa yang dipicu saat operasi Efek Video gagal.

Objek VideoEffectEnabledEvent, VideoEffectDisabledEvent, dan VideoEffectErrorEvent memiliki struktur API berikut:

  • VideoEffectName: Mendapatkan nama Efek Video yang memicu peristiwa.

Setelah memiliki VideoEffectsLocalVideoStreamFeature objek, Anda dapat berlangganan peristiwa:

Untuk menggunakan Efek Video dengan Azure Communication Calling SDK, tambahkan variabel ke MainPage.

public sealed partial class MainPage : Page
{
    private LocalVideoEffectsFeature localVideoEffectsFeature;
}

Setelah Anda membuat LocalVideoStream, Anda perlu mendapatkan API fitur VideoEffects dari LocalVideoStream untuk mengaktifkan/menonaktifkan Efek Video.

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;

Kemudian mulai gunakan API untuk mengaktifkan dan menonaktifkan Efek Video:

videoEffectsLocalVideoStreamFeature.EnableEffect( {{VIDEO_EFFECT_TO_ENABLE}} );
videoEffectsLocalVideoStreamFeature.DisableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );

Kabur latar belakang

Background Blur adalah Efek Video yang memungkinkan aplikasi mengaburkan latar belakang seseorang. Untuk menggunakan Background Video Effect, Anda perlu mendapatkan fitur dari LocalVideoStream yang valid.

Untuk mengaktifkan Efek Video Kabur Latar Belakang:

  • Tambahkan instans BackgroundBlurEffect ke MainPage.
public sealed partial class MainPage : Page
{
    private BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
}
  • Buat metode yang mendapatkan VideoEFfects Fitur berlangganan peristiwa:
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);
}
  • Aktifkan dan nonaktifkan efek Blur Latar Belakang:
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);
        }
    }
}

Penggantian latar belakang

Penggantian Latar Belakang adalah Efek Video yang memungkinkan aplikasi mengganti latar belakang seseorang. Untuk menggunakan Efek Video Latar Belakang, Anda perlu memperoleh VideoEffectsLocalVideoStreamFeature dari LocalVideoStream yang valid.

Untuk mengaktifkan Efek Video Penggantian Latar Belakang:

  • Tambahkan instans BackgroundReplacementEffect ke MainPage.
public sealed partial class MainPage : Page
{
    private BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
}
  • Buat metode yang mendapatkan VideoEFfects Fitur berlangganan peristiwa:
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);
}
  • Atur latar belakang kustom dengan meneruskan gambar melalui buffer.
//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;
  • Aktifkan dan nonaktifkan efek Penggantian Latar Belakang:
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);
        }
    }
}

Langkah selanjutnya