コード例 #1
0
        private static VideoPlayer2D CreateVideoPlayer2D(DuiBrowser browser, Shared.Models.Screen screen)
        {
            var renderTarget = new RenderTarget(
                screen.TargetSettings.ModelName,
                screen.TargetSettings.RenderTargetName);
            var player = new VideoPlayer2D(browser, renderTarget, screen.Name)
            {
                GlobalVolume     = screen.BrowserSettings.GlobalVolume,
                Is3DAudioEnabled = screen.BrowserSettings.Is3DAudioEnabled,
                SoundAttenuation = screen.BrowserSettings.SoundAttenuation,
                SoundMaxDistance = screen.BrowserSettings.SoundMaxDistance,
                SoundMinDistance = screen.BrowserSettings.SoundMinDistance
            };

            player.Toggle3DAudio(screen.BrowserSettings.Is3DAudioEnabled);

            return(player);
        }
コード例 #2
0
        // TODO: Still needs more refactoring => currently way too long
        public async Task <IVideoPlayer> CreateVideoPlayerAsync(Shared.Models.Screen screen)
        {
            RenderTarget    renderTarget;
            TextureRenderer textureRenderer;

            var browser = new DuiBrowser(this.duiUrl, this.duiWidth, this.duiHeight);

            while (!API.IsDuiAvailable(browser.NativeValue))
            {
                await BaseScript.Delay(1);
            }

            browser.CreateRuntimeTexture();
            await BaseScript.Delay(750);

            Debug.WriteLine("sending init..");
            browser.SendInit(screen.Name, this.posterUrl);

            if (!screen.Is3DRendered)
            {
                renderTarget = new RenderTarget(
                    screen.TargetSettings.ModelName,
                    screen.TargetSettings.RenderTargetName);
                var player = new VideoPlayer2D(browser, renderTarget, screen.Name)
                {
                    GlobalVolume     = screen.BrowserSettings.GlobalVolume,
                    SoundMinDistance = screen.BrowserSettings.SoundMinDistance,
                    SoundAttenuation = screen.BrowserSettings.SoundAttenuation,
                    SoundMaxDistance = screen.BrowserSettings.SoundMaxDistance
                };
                return(player);
            }
            else
            {
                var position = new Vector3(
                    screen.PositionalSettings.PositionX,
                    screen.PositionalSettings.PositionY,
                    screen.PositionalSettings.PositionZ);
                var rotation = new Vector3(
                    screen.PositionalSettings.RotationX,
                    screen.PositionalSettings.RotationY,
                    screen.PositionalSettings.RotationZ);
                var scale = new Vector3(
                    screen.PositionalSettings.ScaleX,
                    screen.PositionalSettings.ScaleY,
                    screen.PositionalSettings.ScaleZ);

                textureRenderer = await TextureRendererPool.Instance.CreateTextureRenderer(position, rotation, scale);

                if (textureRenderer == null)
                {
                    Debug.WriteLine("failed to create scaleform.");
                    return(null);
                }

                textureRenderer.SetTexture(browser.TxdName, browser.TxnName);

                var player = new VideoPlayer3D(browser, textureRenderer, screen.Name)
                {
                    GlobalVolume     = screen.BrowserSettings.GlobalVolume,
                    SoundMinDistance = screen.BrowserSettings.SoundMinDistance,
                    SoundAttenuation = screen.BrowserSettings.SoundAttenuation,
                    SoundMaxDistance = screen.BrowserSettings.SoundMaxDistance
                };
                return(player);
            }
        }