public MediaPlayer3D(
            ScaleformRenderer renderer,
            DuiBrowser duiBrowser,
            string playerName,
            float globalVolume,
            float soundAttenuation,
            float soundMaxDistance,
            float soundMinDistance)
            : base(duiBrowser, playerName, globalVolume, soundAttenuation, soundMaxDistance, soundMinDistance)
        {
            this.scaleform = renderer;

            ClientScript.Self.AddTick(this.CalculateVolume);
            ClientScript.Self.AddTick(this.Draw);
        }
Exemple #2
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);
        }
        protected MediaPlayerBase(
            DuiBrowser duiBrowser,
            string playerName,
            float globalVolume,
            float soundAttenuation,
            float soundMaxDistance,
            float soundMinDistance)
        {
            this.duiBrowser = duiBrowser;

            this.PlayerName = playerName;

            this.GlobalVolume     = globalVolume;
            this.SoundAttenuation = soundAttenuation;
            this.SoundMaxDistance = soundMaxDistance;
            this.SoundMinDistance = soundMinDistance;

            ClientScript.Self.AddEvent(Events.ClientVolume, new Action <float>(this.OnClientVolumeChange));
        }
Exemple #4
0
        public async Task <IVideoPlayer> CreateVideoPlayerAsync(Shared.Models.Screen screen)
        {
            var browser = new DuiBrowser(this.duiUrl, this.duiWidth, this.duiHeight);

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

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

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

            if (!screen.Is3DRendered)
            {
                return(CreateVideoPlayer2D(browser, screen));
            }

            return(await this.CreateVideoPlayer3D(browser, screen));
        }
Exemple #5
0
        private async Task <VideoPlayer3D> CreateVideoPlayer3D(DuiBrowser browser, Shared.Models.Screen screen)
        {
            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);

            var 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,
                Is3DAudioEnabled = screen.BrowserSettings.Is3DAudioEnabled
            };

            player.Toggle3DAudio(screen.BrowserSettings.Is3DAudioEnabled);
            return(player);
        }
Exemple #6
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);
            }
        }
Exemple #7
0
 public VideoPlayer2D(DuiBrowser browser, RenderTarget renderTarget, string screenName)
 {
     this.Browser      = browser;
     this.RenderTarget = renderTarget;
     this.ScreenName   = screenName;
 }
Exemple #8
0
 public VideoPlayer3D(DuiBrowser browser, TextureRenderer textureRenderer, string screenName)
 {
     this.textureRenderer = textureRenderer;
     this.ScreenName      = screenName;
     this.Browser         = browser;
 }