Azure / azure-sdk

This is the Azure SDK parent repository and mostly contains documentation around guidelines and policies as well as the releases for the various languages supported by the Azure SDK.
http://azure.github.io/azure-sdk
MIT License
487 stars 297 forks source link

Azure SDK Review - [IC3 ACS Calling] #5866

Open azure-sdk opened 1 year ago

azure-sdk commented 1 year ago

New SDK Review meeting has been requested.

Service Name: IC3 ACS Calling Review Created By: Bob Gao Review Date: 05/08/2023 02:05 PM PT

Hero Scenarios Link: Not Provided Architecture Diagram Link: Not Provided Core Concepts Doc Link: Not Provided APIView Links: Please see comments below

Description: ACS Calling SDKs (native + JS) May GA release review placeholder

Detailed meeting information and documents provided can be accessed here

gaobob-msft commented 1 year ago

Reviewing 3 platforms: Android, iOS, and Windows Android: 2.3.0 GA May release Please review rev 25 vs rev 21: https://apiview.dev/Assemblies/Review/e6c6e8d284fd4a7a80dff09e97f6eb88?diffRevisionId=8eaafc3231134267ac90acf3e8ce15d0&diffOnly=False&revisionId=bead67b4b1074acb84b8223505e49c8f&doc=False

iOS: 2.4.0 GA May release Please review rev 4 vs rev 3: https://apiview.dev/Assemblies/Review/209f39ac4ecf434ea5d2257fa0774f2d?diffRevisionId=becf31ba4f4b4c3b96e924d5df967da0&diffOnly=False&revisionId=e7737db2177944e7987f4671d6faeb7c&doc=False

Windows: 1.0.0 GA May release Please review rev 4 vs rev 2: https://apiview.dev/Assemblies/Review/8c75b91bc08f427886d1cf72925e7a77?diffRevisionId=816ffead990e44069d7a5c76b2955a08&diffOnly=False&revisionId=050a2865a0634ed6b9160c9f1721cbbb&doc=False

xumo-95 commented 1 year ago

Samples for video effect:

Android

Create an instance of the Video Effects feature:

VideoEffectsLocalVideoStreamFeature videoEffectsFeature = localVideoStream.feature(Features.VIDEO_EFFECTS);

Create a new BackgroundBlurEffect object and start the effect:

BackgroundBlurEffect backgroundBlurEffect = new BackgroundBlurEffect();
if (videoEffectsFeature.isEffectSupported(backgroundBlurEffect)) {
    videoEffectsFeature.enableEffect(backgroundBlurEffect);
} else{
    throw new UnsupportedOperationException("Video Effect is not supported");
}

Stop the effect

videoEffectsFeature.disableEffect(backgroundBlurEffect);

Subscribe to the events

videoEffectsFeature.addOnVideoEffectEnabledListener(this::handleOnVideoEffectEnabled);
videoEffectsFeature.addOnVideoEffectDisabledListener(this::handleOnVideoEffectDisabled);
videoEffectsFeature.addOnVideoEffectErrorListener(this::handleOnVideoEffectError);

Create event handlers for the events

private void handleOnVideoEffectEnabled(VideoEffectEnabledEvent args) {
    Log.i("BackgroundBlurFeature", "Effect Enabled for effect " + args.getVideoEffectName());
}

private void handleOnVideoEffectDisabled(VideoEffectDisabledEvent args) {
    Log.i("BackgroundBlurFeature", "Effect Disabled for effect " + args.getVideoEffectName());
}

private void handleOnVideoEffectError(VideoEffectErrorEvent args) {
    Log.i("BackgroundBlurFeature", "Error " + args.getCode() + ":" + args.getMessage()
            + " for effect " + args.getVideoEffectName());
}}

Windows

Create an instance of Video Effects feature

private VideoEffectsLocalVideoStreamFeature videoEffectsFeature;
videoEffectsFeature = localVideoStream[0].Features.VideoEffects;

Create a new BackgroundBlur Effect object.

BackgroundBlurEffect backgroundBlurVideoEffect = new BackgroundBlurEffect();

Start the the Background Blur Video Effect on the Video Effects Feature.

videoEffectsFeature.EnableEffect(backgroundBlurVideoEffect);

Stop the Background Blur Video Effect

videoEffectsFeature.DisableEffect(backgroundBlurVideoEffect);

Subscribe to the events

videoEffectsFeature.OnVideoEffectEnabled += VideoEffectsFeature_OnVideoEffectEnabled;
videoEffectsFeature.OnVideoEffectDisabled += VideoEffectsFeature_OnVideoEffectDisabled;
videoEffectsFeature.OnVideoEffectError += VideoEffectsFeature_OnVideoEffectError;

Create event handlers

private void VideoEffectsFeature_OnVideoEffectEnabled(object sender, VideoEffectEnabledEventArgs args)
{
String effectName = args.VideoEffectName;
Trace.WriteLine("VideoEffects OnVideoEffectEnabled on effect " + effectName);
}

private void VideoEffectsFeature_OnVideoEffectDisabled(object sender, VideoEffectDisabledEventArgs args)
{
String effectName = args.VideoEffectName;
Trace.WriteLine("VideoEffects OnVideoEffectDisabled on effect " + effectName);
}

private void VideoEffectsFeature_OnVideoEffectError(object sender, VideoEffectErrorEventArgs args)
{
String effectName = args.VideoEffectName;
String errorCode = args.Code;
String errorMessage = args.Message;
Trace.WriteLine("VideoEffects OnVideoEffectError on effect " + effectName + "with code "
                + errorCode + "and error message " + errorMessage);
}

iOS

Create an instance of the Video Effects feature:

@State var videoEffectsLocalVideoStreamFeature:VideoEffectsLocalVideoStreamFeature?

videoEffectsLocalVideoStreamFeature = self.localVideoStreams.first.feature(Features.videoEffectsLocalVideoStream)

Create a Background Blur Effect object:

@State var backgroundBlurVideoEffect:BackgroundBlurEffect?

backgroundBlurVideoEffect = BackgroundBlurEffect()

Start background blur video effect:

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

Stop background blur video effect:

videoEffectsLocalVideoStreamFeature.disable(effect: backgroundBlurVideoEffect!)

Subscribe to the events

extension CallObserver: VideoEffectsLocalVideoStreamFeatureDelegate {
    public func videoEffectsLocalVideoStreamFeature(_ videoEffectsLocalVideoStreamFeature: VideoEffectsLocalVideoStreamFeature, didEnableVideoEffect args: VideoEffectEnabledEventArgs) {
        os_log("Video Effect Enabled, VideoEffectName: %s", log:log, args.videoEffectName)
    }
    public func videoEffectsLocalVideoStreamFeature(_ videoEffectsLocalVideoStreamFeature: VideoEffectsLocalVideoStreamFeature, didDisableVideoEffect args: VideoEffectDisabledEventArgs) {
        os_log("Video Effect Disabled, VideoEffectName: %s", log:log, args.videoEffectName)
    }
    public func videoEffectsLocalVideoStreamFeature(_ videoEffectsLocalVideoStreamFeature: VideoEffectsLocalVideoStreamFeature, didOccurVideoEffectError args: VideoEffectErrorEventArgs) {
        os_log("Video Effect Error, VideoEffectName: %s, Code: %s, Message: %s", log:log, args.videoEffectName, args.code, args.message)
    }
}
xumo-95 commented 1 year ago

iOS ApiView for video effects https://apiview.dev/Assemblies/Review/209f39ac4ecf434ea5d2257fa0774f2d