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); }
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)); }
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)); }
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); }
// 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); } }
public VideoPlayer2D(DuiBrowser browser, RenderTarget renderTarget, string screenName) { this.Browser = browser; this.RenderTarget = renderTarget; this.ScreenName = screenName; }
public VideoPlayer3D(DuiBrowser browser, TextureRenderer textureRenderer, string screenName) { this.textureRenderer = textureRenderer; this.ScreenName = screenName; this.Browser = browser; }