private void BeginGetChunk_Completed(IAsyncResult asyncResult) { var downloadRequest = (DownloadRequest)asyncResult.AsyncState; MediaTrack track = downloadRequest.MediaTrack; ChunkResult chunk = track.TrackInfo.EndGetChunk(asyncResult); NotifyRequestSuccessful(downloadRequest); DownloadCompleted(this, downloadRequest.MediaTrack, downloadRequest.ChunkTimestamp, chunk); }
private void ChunkDownloadManager_ChunkDownloadCompleted(ChunkDownloadManager downloadManager, TrackInfo track, TimeSpan timestamp, ChunkResult result) { var dataChunk = track.Stream.ChunkList.First(i => i.TimeStamp == timestamp); if (result.Result == ChunkResult.ChunkResultState.Succeeded) { OnDownloadStreamDataCompleted(track, dataChunk, result.ChunkData, track.Stream); if (DownloadStreamDataCompleted != null) { DownloadStreamDataCompleted(this, track, dataChunk, result.ChunkData, track.Stream); } } else { if (DownloadStreamDataFailed != null) { DownloadStreamDataFailed(this, track, dataChunk, result.Error); } } }
private void ChunkDownloadManager_ChunkDownloadCompleted(ChunkDownloadManager downloadManager, TrackInfo track, TimeSpan timestamp, ChunkResult result) { var dataChunk = track.Stream.ChunkList.First(i => i.TimeStamp == timestamp); if (result.Result == ChunkResult.ChunkResultState.Succeeded) { OnDownloadStreamDataCompleted(track, dataChunk, result.ChunkData, track.Stream); if (DownloadStreamDataCompleted != null) DownloadStreamDataCompleted(this, track, dataChunk, result.ChunkData, track.Stream); } else { if (DownloadStreamDataFailed != null) DownloadStreamDataFailed(this, track, dataChunk, result.Error); } }
private void ChunkDownloadManager_ChunkDownloadCompleted(ChunkDownloadManager downloadManager, MediaTrack track, TimeSpan timestamp, ChunkResult result) { try { var dataChunk = track.ParentStream.DataChunks.First(i => i.Timestamp == timestamp); if (result.Result == ChunkResult.ChunkResultState.Succeeded) { var downloadResult = new StreamDownloadResult { DataChunk = dataChunk, Stream = result.ChunkData, Type = track.ParentStream.Type }; DownloadStreamDataCompleted.IfNotNull(i => i(this, track, downloadResult)); } else { Exception err = result.Error ?? new DownloadStreamDataTimeOutException(); DownloadStreamDataFailed.IfNotNull(i => i(this, track, dataChunk, err)); } } catch (Exception ex) { DownloadStreamDataFailed.IfNotNull(i => i(this, track, null, ex)); } }