using System; using System.Threading; using Stary.Evo; using Stary.Evo.AudioCore; using Stary.Evo.UIFarme; using UnityEngine; public interface IVideoSystem : ISystem { void PlayVideo(VideoPanel.VideoInfo info); void StopVideo(); } public class VideoSystem : AbstractSystem, IVideoSystem { private CancellationTokenSource _cancellationTokenSource; protected override void OnInit() { _cancellationTokenSource = new CancellationTokenSource(); } public override void Dispose() { } public async void PlayVideo(VideoPanel.VideoInfo info) { AudioCoreManager.SetMusicVolume(2f, 0f); await this.GetSystem().PushQueue(packageName:"Main"); this.GetSystem().SendPanelEvent(ModeType.VideoStart,info); } public void StopVideo() { this.GetSystem().SendPanelEvent(ModeType.VideoEnd); } }