Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 padaLocalVideoStream
instans. -
disable
: Menonaktifkan Efek Video padaLocalVideoStream
instans. -
isSupported
: Menunjukkan apakah Efek Video didukung padaLocalVideoStream
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
, , didDisableVideoEffect
didReceiveVideoEffectError
.
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 panggilEnable
padavideoEffectsFeature
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 panggilEnable
padavideoEffectsFeature
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 padaLocalVideoStream
instans. -
disableEffect
: Menonaktifkan Efek Video padaLocalVideoStream
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
padavideoEffectsFeature
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
padavideoEffectsFeature
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 padaLocalVideoStream
instans. -
DisableEffect
: Menonaktifkan Efek Video padaLocalVideoStream
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
- Coba lihat contoh pahlawan panggilan kami.
- Mulai menggunakan Pustaka Antarmuka Pengguna.
- Pelajari tentang Kemampuan Memanggil SDK.
- Pelajari selengkapnya tentang bagaimana cara kerja panggilan.