Rychlý start: Přidání video efektů do videohovorů
Pomocí funkce Efekty videa můžete do videa přidávat efekty ve videohovorech. Tato funkce umožňuje vývojářům vytvářet vizuální efekty na pozadí a nahrazení videa na pozadí do volajícího prostředí. Rozostření pozadí poskytuje uživatelům mechanismus, který umožňuje odebrat rušivé prvky za účastníkem, aby účastníci mohli komunikovat bez rušivé aktivity nebo důvěrných informací na pozadí. To je zvlášť užitečné v kontextu telehealth, kdy poskytovatel nebo pacient může chtít zakrýt okolí, aby chránil citlivé informace nebo identifikovatelné osobní údaje. Rozostření pozadí se dá použít ve všech scénářích virtuálních událostí, včetně telebankingu a virtuálních sluchů, k ochraně osobních údajů uživatelů. Kromě rozšířené důvěrnosti umožňuje rozostření pozadí větší kreativitu výrazu, což uživatelům umožňuje nahrávat vlastní pozadí pro hostování zábavnějšího a přizpůsobeného prostředí volání.
Poznámka:
Knihovnu volajících efektů nelze použít samostatně a může fungovat pouze v případě, že se používá s klientskou knihovnou Azure Communication Calling pro WebJS (https://www.npmjs.com/package/@azure/communication-calling).
Použití video efektů
Nainstalujte balíček .
Důležité
Podpora rozostření pozadí a nahrazení pozadí prohlížečů Webové plochy je dostupná ve verzi GA. V tomto rychlém startu se používá verze 1.13.1
sady SDK pro volání služeb Azure Communication Services (nebo vyšší) a verze sady SDK pro volání služeb Azure Communication Services vyšší nebo rovna 1.0.1
. V současné době se podpora desktopového prohlížeče podporuje vytváření efektů na pozadí videa jenom v prohlížeči Chrome a Edge (Windows a Mac) a Desktopu Mac Safari.
Poznámka:
Podpora rozostření pozadí a nahrazení pozadí pro mobilní prohlížeč Android Chrome a Android Edge je dostupná ve verzi Public Preview počínaje buildem 1.29.1 a novějšími verzemi sady WebJS SDK.
npm install
Pomocí příkazu nainstalujte sadu Azure Communication Services Effects SDK pro JavaScript.
npm install @azure/communication-calling-effects --save
Další podrobnosti najdete na stránce balíčku npm s volajícími komunikačními efekty.
Poznámka:
V současné době existují dva dostupné video efekty:
- Rozostření pozadí
- Nahrazení pozadí obrázkem (poměr stran by měl být kompatibilní s 16:9)
Pokud chcete použít video efekty se sadou AZURE Communication Calling SDK, potřebujete VideoEffects
po vytvoření LocalVideoStream
rozhraní API funkce spustit LocalVideoStream
a zastavit efekty videa:
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
});
Rozostření pozadí
// 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);
}
Nahrazení pozadí obrázkem
Jako pozadí tohoto efektu musíte zadat adresu URL obrázku, který chcete použít.
Důležité
Metoda startEffects
selže, pokud adresa URL není obrázku nebo je nedostupná nebo nečitelná.
Poznámka:
Aktuální podporované formáty obrázků jsou: png, jpg, jpeg, tiff, bmp.
Aktuální podporovaný poměr stran je 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);
}
Změnu obrázku pro tento efekt můžete provést předáním prostřednictvím metody konfigurace:
const newBackgroundImage = 'https://linkToNewImageFile';
await backgroundReplacementEffect.configure({
backgroundImageUrl: newBackgroundImage
});
Přepínání efektů je možné provést stejnou metodou v rozhraní API funkcí efektů videa:
// Switch to background blur
await videoEffectsFeatureApi.startEffects(backgroundBlurEffect);
// Switch to background replacement
await videoEffectsFeatureApi.startEffects(backgroundReplacementEffect);
Pokud chcete zkontrolovat, jaké efekty jsou aktivní, můžete tuto vlastnost použít activeEffects
.
Vlastnost activeEffects
vrátí pole s názvy aktuálních aktivních efektů a vrátí prázdnou matici, pokud nejsou aktivní žádné efekty.
// Using the video effects feature api
const currentActiveEffects = videoEffectsFeatureApi.activeEffects;
Zastavení efektů:
await videoEffectsFeatureApi.stopEffects();
Poznámka:
Aby bylo možné použít video efekty na sadě SDK pro volání iOS, stáhne se do zařízení zákazníka model strojového učení. Doporučujeme, abyste si v případě potřeby zkontrolovali poznámky k ochraně osobních údajů ve vaší aplikaci a odpovídajícím způsobem je aktualizovali.
Pomocí funkce Efekty videa můžete do videa přidávat efekty ve videohovorech. Rozostření pozadí poskytuje uživatelům mechanismus, který umožňuje odebrat rušivé prvky za účastníkem, aby účastníci mohli komunikovat bez rušivé aktivity nebo důvěrných informací na pozadí. Tato funkce je obzvláště užitečná v kontextu telehealth, kdy poskytovatel nebo pacient může chtít zakrýt okolí, aby chránil citlivé informace nebo osobní údaje. Rozostření pozadí se dá použít ve všech scénářích virtuálních událostí, včetně telebankingu a virtuálních sluchů, k ochraně osobních údajů uživatelů.
Použití video efektů
Poznámka:
Podpora efektů videa v iOSu je omezená na dvě nejnovější hlavní verze iOSu. Například když je vydána nová hlavní verze iOS, požadavek iOS je nová verze a nejnovější verze, které jí předchází.
V současné době je k dispozici jeden video efekt: Rozostření pozadí.
Objekt LocalVideoEffectsFeature
má následující strukturu rozhraní API:
enable
: Povolí efekt videa naLocalVideoStream
instanci.disable
: Zakáže efekt videa naLocalVideoStream
instanci.isSupported
: Označuje, jestli je u instance podporovánLocalVideoStream
efekt videa.onVideoEffectEnabled
: Událost, která se aktivuje, když byl efekt videa úspěšně povolen.onVideoEffectDisabled
: Událost, která se aktivuje, když byl efekt videa úspěšně zakázán.onVideoEffectError
: Událost, která se aktivuje při selhání operace efektu videa.
Jakmile objekt máte LocalVideoEffectsFeature
, můžete se přihlásit k odběru událostí, události mají následující delegáty: didEnableVideoEffect
, didDisableVideoEffect
, didReceiveVideoEffectError
.
Pokud chcete použít video efekty se sadou SDK pro volání komunikace Azure, potřebujete po vytvoření LocalVideoStream
rozhraní VideoEffects
API LocalVideoStream
funkce povolit nebo zakázat video efekty:
// 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)
}
a začněte používat rozhraní API k povolení a zakázání video efektů:
localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)
Rozostření pozadí
Rozostření pozadí je efekt videa, který umožňuje rozostření pozadí osoby. Chcete-li použít efekt videa na pozadí, musíte získat LocalVideoEffectsFeature
funkci z platné LocalVideoStream
.
- Vytvořte nový objekt efektu rozostření pozadí:
@State var backgroundBlurVideoEffect: BackgroundBlurEffect?
- Zkontrolujte, jestli
BackgroundBlurEffect
je objekt podporovaný, a zavolejteEnable
hovideoEffectsFeature
:
if((localVideoEffectsFeature.isSupported(effect: backgroundBlurVideoEffect)) != nil)
{
localVideoEffectsFeature.enable(effect: backgroundBlurVideoEffect)
}
Zakázání efektu rozostření pozadí:
localVideoEffectsFeature.disable(effect: backgroundBlurVideoEffect)
Náhrada na pozadí
Nahrazení pozadí je video efekt, který umožňuje osobě nastavit vlastní pozadí. Chcete-li použít efekt nahrazení pozadí, musíte získat LocalVideoEffectsFeature
funkci z platné LocalVideoStream
.
- Vytvořte nový objekt efektu videa na pozadí:
@State var backgroundReplacementVideoEffect: BackgroundReplacementEffect?
- Nastavte vlastní pozadí předáním obrázku přes vyrovnávací paměť.
let image = UIImage(named:"image.png")
guard let imageData = image?.jpegData(compressionQuality: 1.0) else {
return
}
backgroundReplacementVideoEffect.buffer = imageData
- Zkontrolujte, jestli
BackgroundReplacementEffect
je objekt podporovaný, a zavolejteEnable
hovideoEffectsFeature
:
if((localVideoEffectsFeature.isSupported(effect: backgroundReplacementVideoEffect)) != nil)
{
localVideoEffectsFeature.enable(effect: backgroundReplacementVideoEffect)
}
Zakázání efektu videa pro nahrazení pozadí:
localVideoEffectsFeature.disable(effect: backgroundReplacementVideoEffect)
Poznámka:
Aby bylo možné použít video efekty v sadě Android Calling SDK, stáhne se do zařízení zákazníka model strojového učení. Doporučujeme, abyste si v případě potřeby zkontrolovali poznámky k ochraně osobních údajů ve vaší aplikaci a odpovídajícím způsobem je aktualizovali.
Pomocí funkce Efekty videa můžete do videa přidávat efekty ve videohovorech. Rozostření pozadí poskytuje uživatelům mechanismus, který umožňuje odebrat rušivé prvky za účastníkem, aby účastníci mohli komunikovat bez rušivé aktivity nebo důvěrných informací na pozadí. Tato funkce je obzvláště užitečná v kontextu telehealth, kdy poskytovatel nebo pacient může chtít zakrýt okolí, aby chránil citlivé informace nebo osobní údaje. Rozostření pozadí se dá použít ve všech scénářích virtuálních událostí, včetně telebankingu a virtuálních sluchů, k ochraně osobních údajů uživatelů.
Tento rychlý start vychází z rychlého startu: Přidejte do své aplikace pro Android videohovory 1:1.
Použití video efektů
Poznámka:
Podpora efektů videa v Androidu je omezená na poslední čtyři hlavní verze Androidu. Například když je vydána nová hlavní verze Androidu, požadavek na Android je nová verze a tři nejnovější verze, které jí předchází.
V současné době je k dispozici jeden video efekt: Rozostření pozadí.
Objekt VideoEffectsLocalVideoStreamFeature
má následující strukturu rozhraní API:
enableEffect
: Povolí efekt videa naLocalVideoStream
instanci.disableEffect
: Zakáže efekt videa naLocalVideoStream
instanci.OnVideoEffectEnabledListener
: Událost, která se aktivuje, když byl efekt videa úspěšně povolen.OnVideoEffectDisabledListener
: Událost, která se aktivuje, když byl efekt videa úspěšně zakázán.OnVideoEffectErrorListener
: Událost, která se aktivuje při selhání operace efektu videa.
VideoEffectDisabledEvent
Objekty VideoEffectEnabledEvent
a VideoEffectErrorEvent
objekty mají následující strukturu rozhraní API:
getVideoEffectName
: Získá název efektu videa, který aktivoval událost.
Jakmile objekt máte VideoEffectsLocalVideoStreamFeature
, můžete se přihlásit k odběru událostí:
Pokud chcete použít video efekty se sadou SDK pro volání komunikace Azure, potřebujete po vytvoření LocalVideoStream
rozhraní VideoEffects
API LocalVideoStream
funkce povolit nebo zakázat video efekty:
// 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);
a začněte používat rozhraní API k povolení a zakázání video efektů:
videoEffectsFeature.enableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
videoEffectsFeature.disableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
Rozostření pozadí
Rozostření pozadí je efekt videa, který umožňuje rozostření pozadí osoby. Chcete-li použít efekt videa na pozadí, musíte získat VideoEffectsLocalVideoStreamFeature
funkci z platné LocalVideoStream
.
Povolení efektu rozostření pozadí:
- Vytvořte metodu
VideoEFfects
, která získá odběr funkce k odběru událostí:
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);
}
- Vytvořte nový objekt efektu rozostření pozadí:
BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
- Volání
EnableEffect
objektuvideoEffectsFeature
:
public void enableBackgroundBlur() {
videoEffectsFeature.enableEffect(backgroundBlurEffect);
}
Zakázání efektu rozostření pozadí:
public void disableBackgroundBlur() {
videoEffectsFeature.disableEffect(backgroundBlurEffect);
}
Náhrada na pozadí
Nahrazení pozadí je efekt videa, který umožňuje nahradit pozadí osoby. Chcete-li použít efekt videa na pozadí, musíte získat VideoEffectsLocalVideoStreamFeature
funkci z platné LocalVideoStream
.
Povolení efektu videa na pozadí:
- Vytvořte metodu
VideoEFfects
, která získá odběr funkce k odběru událostí:
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);
}
- Vytvořte nový objekt efektu videa na pozadí:
BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
- Nastavte vlastní pozadí předáním obrázku přes vyrovnávací paměť.
//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);
- Volání
EnableEffect
objektuvideoEffectsFeature
:
public void enableBackgroundReplacement() {
videoEffectsFeature.enableEffect(backgroundReplacementVideoEffect);
}
Zakázání efektu videa pro nahrazení pozadí:
public void disableBackgroundReplacement() {
videoEffectsFeature.disableEffect(backgroundReplacementVideoEffect);
}
Poznámka:
Aby bylo možné použít video efekty v sadě Windows Calling SDK, stáhne se do zařízení zákazníka model strojového učení. Doporučujeme, abyste si v případě potřeby zkontrolovali poznámky k ochraně osobních údajů ve vaší aplikaci a odpovídajícím způsobem je aktualizovali.
Pomocí funkce Efekty videa můžete do videa přidávat efekty ve videohovorech. Rozostření pozadí poskytuje uživatelům mechanismus, který umožňuje odebrat rušivé prvky za účastníkem, aby účastníci mohli komunikovat bez rušivé aktivity nebo důvěrných informací na pozadí. Tato funkce je obzvláště užitečná v kontextu telehealth, kdy poskytovatel nebo pacient může chtít zakrýt okolí, aby chránil citlivé informace nebo osobní údaje. Rozostření pozadí se dá použít ve všech scénářích virtuálních událostí, včetně telebankingu a virtuálních sluchů, k ochraně osobních údajů uživatelů.
Tento rychlý start vychází z rychlého startu: Přidejte do své aplikace pro Windows videohovory 1:1.
Použití video efektů
V současné době je k dispozici jeden video efekt: Rozostření pozadí.
Objekt VideoEffectsLocalVideoStreamFeature
má následující strukturu rozhraní API:
EnableEffect
: Povolí efekt videa naLocalVideoStream
instanci.DisableEffect
: Zakáže efekt videa naLocalVideoStream
instanci.VideoEffectEnabled
: Událost, která se aktivuje, když byl efekt videa úspěšně povolen.VideoEffectDisabledListener
: Událost, která se aktivuje, když byl efekt videa úspěšně zakázán.VideoEffectErrorListener
: Událost, která se aktivuje při selhání operace efektu videa.
VideoEffectDisabledEvent
Objekty VideoEffectEnabledEvent
a VideoEffectErrorEvent
objekty mají následující strukturu rozhraní API:
VideoEffectName
: Získá název efektu videa, který aktivoval událost.
Jakmile objekt máte VideoEffectsLocalVideoStreamFeature
, můžete se přihlásit k odběru událostí:
Pokud chcete použít video efekty se sadou SDK pro volání komunikace Azure, přidejte proměnné do MainPage.
public sealed partial class MainPage : Page
{
private LocalVideoEffectsFeature localVideoEffectsFeature;
}
Jakmile vytvoříte rozhraní LocalVideoStream
API funkce, musíte získat VideoEffects
rozhraní API LocalVideoStream
pro povolení nebo zakázání video efektů.
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;
a začněte používat rozhraní API k povolení a zakázání video efektů:
videoEffectsLocalVideoStreamFeature.EnableEffect( {{VIDEO_EFFECT_TO_ENABLE}} );
videoEffectsLocalVideoStreamFeature.DisableEffect( {{VIDEO_EFFECT_TO_DISABLE}} );
Rozostření pozadí
Rozostření pozadí je efekt videa, který umožňuje rozostření pozadí osoby. Chcete-li použít efekt videa na pozadí, musíte získat VideoEffectsLocalVideoStreamFeature
funkci z platné LocalVideoStream
.
Povolení efektu rozostření pozadí:
BackgroundBlurEffect
Přidejte instanci do MainPage.
public sealed partial class MainPage : Page
{
private BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();
}
- Vytvořte metodu
VideoEFfects
, která získá odběr funkce k odběru událostí:
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);
}
- Povolte a zakažte efekt Rozostření pozadí:
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);
}
}
}
Náhrada na pozadí
Nahrazení pozadí je efekt videa, který umožňuje nahradit pozadí osoby. Chcete-li použít efekt videa na pozadí, musíte získat VideoEffectsLocalVideoStreamFeature
funkci z platné LocalVideoStream
.
Povolení efektu videa na pozadí:
BackgroundReplacementEffect
Přidejte instanci do MainPage.
public sealed partial class MainPage : Page
{
private BackgroundReplacementEffect backgroundReplacementVideoEffect = new BackgroundReplacementEffect();
}
- Vytvořte metodu
VideoEFfects
, která získá odběr funkce k odběru událostí:
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);
}
- Nastavte vlastní pozadí předáním obrázku přes vyrovnávací paměť.
//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;
- Povolte a zakažte efekt nahrazení pozadí:
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);
}
}
}
Další kroky
Další informace najdete v následujících článcích:
- Podívejte se na ukázku našeho hrdiny volání
- Začínáme s knihovnou uživatelského rozhraní
- Informace o možnostech volání sady SDK
- Další informace o fungování volání