internal static ADLMediaPublishOptions toNative(MediaPublishOptions options)
 {
     ADLMediaPublishOptions result = new ADLMediaPublishOptions();
     if (options != null)
     {
         result.windowId = StringHelper.toNative(options.windowId);
         result.nativeWidth = options.nativeWidth;
     }
     return result;
 }
Example #2
0
        internal static ADLMediaPublishOptions toNative(MediaPublishOptions options)
        {
            ADLMediaPublishOptions result = new ADLMediaPublishOptions();

            if (options != null)
            {
                result.windowId    = StringHelper.toNative(options.windowId);
                result.nativeWidth = options.nativeWidth;
            }
            return(result);
        }
Example #3
0
        // =====================================================================

        /// <inheritdoc />
        public void publish(Responder <object> responder, string scopeId,
                            MediaType mediaType, MediaPublishOptions options)
        {
            if (!isPlatformInitialized <object>(responder))
            {
                return;
            }

            ADLString scpId   = StringHelper.toNative(scopeId);
            ADLString mediaTp =
                StringHelper.toNative(mediaType.StringValue);
            ADLMediaPublishOptions mediaPublishOpts =
                MediaPublishOptions.toNative(options);

            NativeAPI.adl_publish(_voidRCallback,
                                  _platformHandle, saveResponder(responder),
                                  ref scpId, ref mediaTp, ref mediaPublishOpts);
        }
        public void testPublishScreen()
        {
            setupDevs();
            string scopeId = "c_sharp_test_room";
            ConnectionDescription connDescr = genDefConnDescr(scopeId);
            connDescr.autopublishAudio = false;
            connDescr.autopublishVideo = false;

            _service.connect(createVoidResponder(), connDescr);
            awaitVoidResult("connect", 10000);

            _service.getScreenCaptureSources(createScrSourcesResponder(), 160);
            List<ScreenCaptureSource> sources = awaitScrSourcesResult();

            MediaPublishOptions options = new MediaPublishOptions();
            options.windowId = sources[0].id;
            options.nativeWidth = 640;
            _service.publish(createVoidResponder(), scopeId, MediaType.SCREEN, options);
            awaitVoidResult("publish screen", 10000);

            Thread.Sleep(15000);
            _service.disconnect(createVoidResponder(), scopeId);
            awaitVoidResult("disconnect");
        }