public static HLSPlaylist ParsePlaylists(string url) { WebRequest request = WebRequest.Create(url); if (request != null) { request.Method = "GET"; request.Timeout = 12000; request.ContentType = "application/json"; using (var response = request.GetResponse()) { return(HLSPlaylist.GetFromStream(response.GetResponseStream())); } } return(null); }
/// <summary> /// Load list of avaliable qualities for stream /// </summary> /// <param name="playlist">Stream playlist source</param> public void LoadQualityList(HLSPlaylist playlist) { if (playlist?.Playlist != null && playlist.Playlist.Count() > 0) { StreamQualities.ClearQualityList(); foreach (var stream in playlist.Playlist) { if (stream.Name.StartsWith("audio")) { continue; } StreamQualities.AddQuality(new StreamQualityViewModel { Name = stream.Name, HLSStream = stream }); } } }
// Summary: // Initializes a new instance of the System.Windows.Media.MediaStreamSource // class. public HLSMediaStreamSource(HLSMediaStreamSourceOpenParam openParam) { _openParam = new HLSMediaStreamSourceOpenParam(openParam); _bwHistory = new HttpLiveStreaming.BandwidthHistory(openParam.initialBandwidth); _playlist = new HLSPlaylist(openParam.uri); _playlist.MSS = this; Construct(); }
/// <summary> /// Handler for Close command /// </summary> private void DoCloseMedia() { lock (_workQueueThreadLock) { HLSTrace.WriteLine("DoCloseMedia"); _bwHistory.Close(); _playback.AbortStreamDownloads(); _isWorkQueueThreadStarted = false; _workQueueThread = null; _workQueue = null; _audioBuffer = null; _videoBuffer = null; _playlist = null; _playback = null; _program = null; if (_demux != null) { _demux.Dispose(); _demux = null; } } }