Delen via


QuickStart: Video-effecten toevoegen aan uw videogesprekken

U kunt de functie Video-effecten gebruiken om effecten toe te voegen aan uw video in videogesprekken. Met deze functie kunnen ontwikkelaars visuele achtergrondeffecten en achtergrondvideovervanging bouwen in de belervaring. Achtergrondvervaging biedt gebruikers het mechanisme om afleidingen achter een deelnemer te verwijderen, zodat deelnemers kunnen communiceren zonder verstorende activiteit of vertrouwelijke informatie op de achtergrond. Dit is met name nuttig voor de context van telezorg, waarbij een provider of patiënt hun omgeving misschien wil verdoezelen om gevoelige informatie of persoonsgegevens te beschermen. Achtergrondvervaging kan worden toegepast op alle virtuele afspraakscenario's, waaronder telebankieren en virtuele hoorzittingen, om de privacy van gebruikers te beschermen. Naast verbeterde vertrouwelijkheid biedt achtergrond vervagen meer creativiteit van expressie, waardoor gebruikers aangepaste achtergronden kunnen uploaden om een meer leuke, persoonlijke belervaring te hosten.

Notitie

De beleffectbibliotheek kan niet zelfstandig worden gebruikt en kan alleen werken wanneer deze wordt gebruikt met de Azure Communication Calling-clientbibliotheek voor WebJS (https://www.npmjs.com/package/@azure/communication-calling).

Video-effecten gebruiken

Het pakket installeren

Belangrijk

Achtergrondvervaging en achtergrondvervanging voor webbrowsers is beschikbaar in algemene beschikbaarheid. In deze quickstart wordt de SDK-versie voor aanroepen van Azure Communication Services van (of hoger) en de SDK-versie van 1.13.1 Azure Communication Services Calling Effects groter dan of gelijk aan 1.0.1gebruikt. Momenteel wordt ondersteuning voor bureaubladbrowsers voor het maken van video-achtergrondeffecten alleen ondersteund in Chrome en Edge Desktop Browser (Windows en Mac) en Mac Safari Desktop.

Notitie

Achtergrondvervaging en achtergrondvervanging voor mobiele Android Chrome- en Android Edge-browser is beschikbaar in openbare preview vanaf build 1.29.1 en nieuwere bètaversies van WebJS SDK.

Gebruik de npm install opdracht om de Azure Communication Services Effects SDK voor JavaScript te installeren.

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

Zie hier voor meer informatie over de npm-pakketpagina voor beleffecten.

Notitie

Er zijn momenteel twee beschikbare video-effecten:

  • Achtergrond vervagen
  • Achtergrondvervanging met een afbeelding (de hoogte-breedteverhouding moet 16:9 zijn om compatibel te zijn)

Als u video-effecten wilt gebruiken met de Azure Communication Calling SDK, moet u, nadat u een LocalVideoStreamhebt gemaakt, de functie-API ophalen van de VideoEffects LocalVideoStream video-effecten om video-effecten te starten/stoppen:

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

Achtergrond vervagen

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

Achtergrondvervanging met een afbeelding

U moet de URL opgeven van de gewenste afbeelding als achtergrond voor dit effect.

Belangrijk

De startEffects methode mislukt als de URL niet van een afbeelding is of onbereikbaar/onleesbaar is.

Notitie

Huidige ondersteunde afbeeldingsindelingen zijn: png, jpg, jpeg, tiff, bmp.

De huidige ondersteunde hoogte-breedteverhouding is 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); 
}

U kunt de afbeelding voor dit effect wijzigen door deze door te geven via de configuratiemethode:

const newBackgroundImage = 'https://linkToNewImageFile'; 

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

Schakeleffecten kunnen worden uitgevoerd met dezelfde methode op de functie-API voor video-effecten:

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

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

Als u op elk gewenst moment wilt controleren welke effecten actief zijn, kunt u de activeEffects eigenschap gebruiken. De activeEffects eigenschap retourneert een matrix met de namen van de huidige actieve effecten en retourneert een lege matrix als er geen effecten actief zijn.

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

Effecten stoppen:

await videoEffectsFeatureApi.stopEffects();

Notitie

Als u Video-effecten wilt gebruiken voor de SDK voor iOS-aanroepen, wordt een machine learning-model gedownload naar het apparaat van de klant. We raden u aan de privacynotities in uw toepassing te bekijken en deze zo nodig bij te werken.

U kunt de functie Video-effecten gebruiken om effecten toe te voegen aan uw video in videogesprekken. Achtergrondvervaging biedt gebruikers het mechanisme om afleidingen achter een deelnemer te verwijderen, zodat deelnemers kunnen communiceren zonder verstorende activiteit of vertrouwelijke informatie op de achtergrond. Deze functie is vooral nuttig voor de context van telehealth, waarbij een provider of patiënt zijn omgeving mogelijk wil verdoezelen om gevoelige informatie of persoonlijke gegevens te beschermen. Achtergrondvervaging kan worden toegepast op alle virtuele afspraakscenario's, waaronder telebankieren en virtuele hoorzittingen, om de privacy van gebruikers te beschermen.

Video-effecten gebruiken

Notitie

Ondersteuning voor video-effecten op iOS is beperkt tot de twee meest recente primaire versies van iOS. Wanneer er bijvoorbeeld een nieuwe primaire versie van iOS wordt uitgebracht, is de iOS-vereiste de nieuwe versie en de meest recente versies die eraan voorafgingen.

Er is momenteel één beschikbaar Video-effect: Achtergrond vervagen.

Het LocalVideoEffectsFeature object heeft de volgende API-structuur:

  • enable: Hiermee schakelt u een video-effect in op het LocalVideoStream exemplaar.
  • disable: Hiermee wordt een video-effect op het LocalVideoStream exemplaar uitgeschakeld.
  • isSupported: Geeft aan of een video-effect wordt ondersteund op het LocalVideoStream exemplaar.
  • onVideoEffectEnabled: Gebeurtenis die wordt geactiveerd wanneer een video-effect is ingeschakeld.
  • onVideoEffectDisabled: Gebeurtenis die wordt geactiveerd wanneer een video-effect is uitgeschakeld.
  • onVideoEffectError: Gebeurtenis die wordt geactiveerd wanneer een video-effectbewerking mislukt.

Zodra u het LocalVideoEffectsFeature object hebt, kunt u zich abonneren op de gebeurtenissen, gebeurtenissen hebben de volgende gemachtigden: didEnableVideoEffect, didDisableVideoEffect, . didReceiveVideoEffectError

Als u Video-effecten wilt gebruiken met de Azure Communication Calling SDK, moet u, nadat u een LocalVideoStreamhebt gemaakt, de VideoEffects functie-API ophalen van de LocalVideoStream functie-API om Video-effecten in of uit te schakelen:

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

en gebruik de API's om Video-effecten in en uit te schakelen:

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

Achtergrond vervagen

Achtergrondvervaging is een video-effect waarmee de achtergrond van een persoon wazig kan worden. Als u Achtergrondvideo-effect wilt gebruiken, moet u een LocalVideoEffectsFeature functie verkrijgen van een geldig .LocalVideoStream

  • Maak een nieuw video-effect op de achtergrond:
@State var backgroundBlurVideoEffect: BackgroundBlurEffect?
  • Controleer of BackgroundBlurEffect het object wordt ondersteund en aanroept Enable videoEffectsFeature :
if((localVideoEffectsFeature.isSupported(effect: backgroundBlurVideoEffect)) != nil)
{
    localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
}

Het video-effect Achtergrond vervagen uitschakelen:

localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)

Achtergrondvervanging

Achtergrondvervanging is een video-effect waarmee een persoon zijn eigen aangepaste achtergrond kan instellen. Als u achtergrondvervangingseffect wilt gebruiken, moet u een LocalVideoEffectsFeature functie van een geldige LocalVideoStreamfunctie verkrijgen.

  • Maak een nieuw video-effectobject voor achtergrondvervanging:
@State var backgroundReplacementVideoEffect: BackgroundReplacementEffect?
  • Stel een aangepaste achtergrond in door de afbeelding door te geven via een buffer.
let image = UIImage(named:"image.png")
guard let imageData = image?.jpegData(compressionQuality: 1.0) else {
return
}
backgroundReplacementVideoEffect.buffer = imageData
  • Controleer of BackgroundReplacementEffect het object wordt ondersteund en aanroept Enable videoEffectsFeature :
if((localVideoEffectsFeature.isSupported(effect: backgroundReplacementVideoEffect)) != nil)
{
    localVideoEffectsFeature.enable(effect: backgroundReplacementVideoEffect)
}

Achtergrondvervangingsvideo-effect uitschakelen:

localVideoEffectsFeature.disable(effect: backgroundReplacementVideoEffect)

Notitie

Als u Video-effecten wilt gebruiken voor de Android Calling SDK, wordt een machine learning-model gedownload naar het apparaat van de klant. We raden u aan de privacynotities in uw toepassing te bekijken en deze zo nodig bij te werken.

U kunt de functie Video-effecten gebruiken om effecten toe te voegen aan uw video in videogesprekken. Achtergrondvervaging biedt gebruikers het mechanisme om afleidingen achter een deelnemer te verwijderen, zodat deelnemers kunnen communiceren zonder verstorende activiteit of vertrouwelijke informatie op de achtergrond. Deze functie is vooral nuttig voor de context van telehealth, waarbij een provider of patiënt zijn omgeving mogelijk wil verdoezelen om gevoelige informatie of persoonlijke gegevens te beschermen. Achtergrondvervaging kan worden toegepast op alle virtuele afspraakscenario's, waaronder telebankieren en virtuele hoorzittingen, om de privacy van gebruikers te beschermen.

Deze quickstart bouwt voort op quickstart: 1:1 videogesprekken toevoegen aan uw app voor Android.

Video-effecten gebruiken

Notitie

Ondersteuning voor video-effecten op Android is beperkt tot de laatste vier primaire versies van Android. Wanneer er bijvoorbeeld een nieuwe primaire versie van Android wordt uitgebracht, is de Android-vereiste de nieuwe versie en de drie meest recente versies die eraan voorafgaan.

Er is momenteel één beschikbaar Video-effect: Achtergrond vervagen.

Het VideoEffectsLocalVideoStreamFeature object heeft de volgende API-structuur:

  • enableEffect: Hiermee schakelt u een video-effect in op het LocalVideoStream exemplaar.
  • disableEffect: Hiermee wordt een video-effect op het LocalVideoStream exemplaar uitgeschakeld.
  • OnVideoEffectEnabledListener: Gebeurtenis die wordt geactiveerd wanneer een video-effect is ingeschakeld.
  • OnVideoEffectDisabledListener: Gebeurtenis die wordt geactiveerd wanneer een video-effect is uitgeschakeld.
  • OnVideoEffectErrorListener: Gebeurtenis die wordt geactiveerd wanneer een video-effectbewerking mislukt.

De VideoEffectEnabledEventen VideoEffectDisabledEvent VideoEffectErrorEvent objecten hebben de volgende API-structuur:

  • getVideoEffectName: Haalt de naam op van het video-effect dat de gebeurtenis heeft geactiveerd.

Zodra u het VideoEffectsLocalVideoStreamFeature object hebt, kunt u zich abonneren op de gebeurtenissen:

Als u Video-effecten wilt gebruiken met de Azure Communication Calling SDK, moet u, nadat u een LocalVideoStreamhebt gemaakt, de VideoEffects functie-API ophalen van de LocalVideoStream functie-API om Video-effecten in of uit te schakelen:

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

en gebruik de API's om Video-effecten in en uit te schakelen:

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

Achtergrond vervagen

Achtergrondvervaging is een video-effect waarmee de achtergrond van een persoon wazig kan worden. Als u Achtergrondvideo-effect wilt gebruiken, moet u een VideoEffectsLocalVideoStreamFeature functie verkrijgen van een geldig .LocalVideoStream

Het video-effect Achtergrond vervagen inschakelen:

  • Maak een methode waarmee de VideoEFfects functie wordt geabonneerd op de gebeurtenissen:
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);
}

  • Maak een nieuw video-effect op de achtergrond:
BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
  • Het object aanroepen EnableEffect videoEffectsFeature :
public void enableBackgroundBlur() {
    videoEffectsFeature.enableEffect(backgroundBlurEffect);
}

Het video-effect Achtergrond vervagen uitschakelen:

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

Achtergrondvervanging

Achtergrondvervanging is een video-effect waarmee de achtergrond van een persoon kan worden vervangen. Als u Achtergrondvideo-effect wilt gebruiken, moet u een VideoEffectsLocalVideoStreamFeature functie verkrijgen van een geldig .LocalVideoStream

Achtergrondvervanging video-effect inschakelen:

  • Maak een methode waarmee de VideoEFfects functie wordt geabonneerd op de gebeurtenissen:
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);
}

  • Maak een nieuw video-effectobject voor achtergrondvervanging:
BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
  • Stel een aangepaste achtergrond in door de afbeelding door te geven via een 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);
  • Het object aanroepen EnableEffect videoEffectsFeature :
public void enableBackgroundReplacement() {
    videoEffectsFeature.enableEffect(backgroundReplacementVideoEffect);
}

Achtergrondvervangingsvideo-effect uitschakelen:

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

Notitie

Als u Video-effecten op de Windows Calling SDK wilt gebruiken, wordt een machine learning-model gedownload naar het apparaat van de klant. We raden u aan de privacynotities in uw toepassing te bekijken en deze zo nodig bij te werken.

U kunt de functie Video-effecten gebruiken om effecten toe te voegen aan uw video in videogesprekken. Achtergrondvervaging biedt gebruikers het mechanisme om afleidingen achter een deelnemer te verwijderen, zodat deelnemers kunnen communiceren zonder verstorende activiteit of vertrouwelijke informatie op de achtergrond. Deze functie is vooral nuttig voor de context van telehealth, waarbij een provider of patiënt zijn omgeving mogelijk wil verdoezelen om gevoelige informatie of persoonlijke gegevens te beschermen. Achtergrondvervaging kan worden toegepast op alle virtuele afspraakscenario's, waaronder telebankieren en virtuele hoorzittingen, om de privacy van gebruikers te beschermen.

Deze quickstart bouwt voort op quickstart: 1:1 videogesprekken toevoegen aan uw app voor Windows.

Video-effecten gebruiken

Er is momenteel één beschikbaar Video-effect: Achtergrond vervagen.

Het VideoEffectsLocalVideoStreamFeature object heeft de volgende API-structuur:

  • EnableEffect: Hiermee schakelt u een video-effect in op het LocalVideoStream exemplaar.
  • DisableEffect: Hiermee wordt een video-effect op het LocalVideoStream exemplaar uitgeschakeld.
  • VideoEffectEnabled: Gebeurtenis die wordt geactiveerd wanneer een video-effect is ingeschakeld.
  • VideoEffectDisabledListener: Gebeurtenis die wordt geactiveerd wanneer een video-effect is uitgeschakeld.
  • VideoEffectErrorListener: Gebeurtenis die wordt geactiveerd wanneer een video-effectbewerking mislukt.

De VideoEffectEnabledEventen VideoEffectDisabledEvent VideoEffectErrorEvent objecten hebben de volgende API-structuur:

  • VideoEffectName: Haalt de naam op van het video-effect dat de gebeurtenis heeft geactiveerd.

Zodra u het VideoEffectsLocalVideoStreamFeature object hebt, kunt u zich abonneren op de gebeurtenissen:

Als u video-effecten wilt gebruiken met de Azure Communication Calling SDK, voegt u de variabelen toe aan MainPage.

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

Zodra u een LocalVideoStreamhebt gemaakt, moet u de functie-API ophalen van de LocalVideoStream VideoEffects functie-API om video-effecten in of uit te schakelen.

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;

en gebruik de API's om Video-effecten in en uit te schakelen:

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

Achtergrond vervagen

Achtergrondvervaging is een video-effect waarmee de achtergrond van een persoon wazig kan worden. Als u Achtergrondvideo-effect wilt gebruiken, moet u een VideoEffectsLocalVideoStreamFeature functie verkrijgen van een geldig .LocalVideoStream

Het video-effect Achtergrond vervagen inschakelen:

  • Voeg het BackgroundBlurEffect exemplaar toe aan de MainPage.
public sealed partial class MainPage : Page
{
    private BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
}
  • Maak een methode waarmee de VideoEFfects functie wordt geabonneerd op de gebeurtenissen:
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);
}
  • Schakel het effect Achtergrond vervagen in en uit:
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);
        }
    }
}

Achtergrondvervanging

Achtergrondvervanging is een video-effect waarmee de achtergrond van een persoon kan worden vervangen. Als u Achtergrondvideo-effect wilt gebruiken, moet u een VideoEffectsLocalVideoStreamFeature functie verkrijgen van een geldig .LocalVideoStream

Achtergrondvervanging video-effect inschakelen:

  • Voeg het BackgroundReplacementEffect exemplaar toe aan de MainPage.
public sealed partial class MainPage : Page
{
    private BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
}
  • Maak een methode waarmee de VideoEFfects functie wordt geabonneerd op de gebeurtenissen:
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);
}
  • Stel een aangepaste achtergrond in door de afbeelding door te geven via een 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;
  • Het effect Achtergrondvervanging in- en uitschakelen:
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);
        }
    }
}

Volgende stappen

Raadpleeg voor meer informatie de volgende artikelen: