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.1
gebruikt. 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 LocalVideoStream
hebt 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 hetLocalVideoStream
exemplaar.disable
: Hiermee wordt een video-effect op hetLocalVideoStream
exemplaar uitgeschakeld.isSupported
: Geeft aan of een video-effect wordt ondersteund op hetLocalVideoStream
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 LocalVideoStream
hebt 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 aanroeptEnable
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 LocalVideoStream
functie 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 aanroeptEnable
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 hetLocalVideoStream
exemplaar.disableEffect
: Hiermee wordt een video-effect op hetLocalVideoStream
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 VideoEffectEnabledEvent
en 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 LocalVideoStream
hebt 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 hetLocalVideoStream
exemplaar.DisableEffect
: Hiermee wordt een video-effect op hetLocalVideoStream
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 VideoEffectEnabledEvent
en 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 LocalVideoStream
hebt 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:
- Bekijk ons voorbeeld van een aanroephero
- Aan de slag met de UI-bibliotheek
- Meer informatie over de mogelijkheden van calling-SDK
- Meer informatie over de werking van aanroepen