public override void OnPlaybackEnded(VideoInfo video, string url, double percent, bool stoppedByUser) { if (aceStreamEngine != null) { aceStreamEngine.Stop(); aceStreamEngine.Close(); aceStreamEngine = null; } }
string getAceStreamUrl(string pid) { if (aceStreamEngine != null) aceStreamEngine.Close(); Log.Debug("Wiziwig: Starting acestream with PID '{0}'", pid); string url = null; try { aceStreamEngine = new AceStreamEngine(); aceStreamEngine.OnMessage += (s, e) => Log.Debug("Wiziwig: " + e.Message); if (!aceStreamEngine.Connect() || !aceStreamEngine.WaitForReady()) return null; aceStreamEngine.StartPID(pid); url = aceStreamEngine.WaitForUrl(aceStreamTimeout); } catch (System.Threading.ThreadAbortException) { aceStreamEngine.Close(); aceStreamEngine = null; Log.Warn("Wiziwig: Background thread was aborted by OnlineVideos, consider increasing OnlineVideos' web request timeout"); throw; } if (!string.IsNullOrEmpty(url)) //return new MPUrlSourceFilter.HttpUrl(url) { LiveStream = true, ReceiveDataTimeout = MPUrlSourceFilter.HttpUrl.DefaultReceiveDataTimeout * 2 }.ToString(); return new MPUrlSourceFilter.HttpUrl(url) { LiveStream = true }.ToString(); aceStreamEngine.Close(); aceStreamEngine = null; return null; }