void airplayServer_PlaybackInfoRequested(object sender, PlaybackInfoEventArgs e) { AirplayVideoPlayer currentVideoPlayer = getPlayer <AirplayVideoPlayer>(); if (currentVideoPlayer != null) { PlaybackInfo playbackInfo = e.PlaybackInfo; playbackInfo.Duration = currentVideoPlayer.Duration.TotalSeconds; playbackInfo.Position = currentVideoPlayer.CurrentTime.TotalSeconds; playbackInfo.PlaybackLikelyToKeepUp = true; playbackInfo.ReadyToPlay = true; PlaybackTimeRange timeRange = new PlaybackTimeRange(); timeRange.Duration = playbackInfo.Duration; playbackInfo.LoadedTimeRanges.Add(timeRange); playbackInfo.SeekableTimeRanges.Add(timeRange); if (currentVideoPlayer.IsPaused) { playbackInfo.Rate = 0; } else { playbackInfo.Rate = 1; } } }
public void GetPlaybackInfo(PlaybackInfo playbackInfo) { if (hasStarted && m_Playback.Duration > 0) { playbackInfo.Duration = m_Playback.Duration / (float)COMHelper.UNITS; playbackInfo.Position = m_Playback.Position / (float)COMHelper.UNITS; playbackInfo.PlaybackLikelyToKeepUp = true; playbackInfo.ReadyToPlay = true; PlaybackTimeRange timeRange = new PlaybackTimeRange() { Duration = playbackInfo.Duration }; playbackInfo.LoadedTimeRanges.Add(timeRange); playbackInfo.SeekableTimeRanges.Add(timeRange); playbackInfo.Rate = m_Playback.IsPaused || hasFinished ? 0 : 1; } }
void airplayServer_PlaybackInfoRequested(object sender, PlaybackInfoEventArgs e) { invoke(delegate() { if (isVideoPlaying) { PlaybackInfo playbackInfo = e.PlaybackInfo; playbackInfo.Duration = currentVideoPlayer.Duration; playbackInfo.Position = currentVideoPlayer.CurrentPosition; playbackInfo.PlaybackLikelyToKeepUp = true; playbackInfo.ReadyToPlay = true; AvailableTimerange availableTimerange = currentVideoPlayer.GetAvailableTimerange(); PlaybackTimeRange timeRange = new PlaybackTimeRange(); if (availableTimerange != null) { timeRange.Start = availableTimerange.StartTime; timeRange.Duration = availableTimerange.EndTime - availableTimerange.StartTime; } else { timeRange.Duration = currentVideoPlayer.Duration; } playbackInfo.LoadedTimeRanges.Add(timeRange); playbackInfo.SeekableTimeRanges.Add(timeRange); if (currentVideoPlayer.Paused) { playbackInfo.Rate = 0; } else { playbackInfo.Rate = 1; } } }); }