void OnPlaybackEnded(object sender, EventArgs e) { PlaybackEnded?.Invoke(sender, e); player.SeekTo(0); player.Stop(); player.Prepare(); }
public int Read(float[] buffer, int offset, int count) { if (playbackRate == 0) // play silence { for (int n = 0; n < count; n++) { buffer[offset++] = 0; } return(count); } if (repositionRequested) { soundTouch.Clear(); repositionRequested = false; } int samplesRead = 0; bool reachedEndOfSource = false; while (samplesRead < count) { if (soundTouch.NumberOfSamplesAvailable == 0) { var readFromSource = sourceProvider.Read(sourceReadBuffer, 0, sourceReadBuffer.Length); if (readFromSource > 0) { soundTouch.PutSamples(sourceReadBuffer, readFromSource / channelCount); } else { reachedEndOfSource = true; // we've reached the end, tell SoundTouch we're done soundTouch.Flush(); } } var desiredSampleFrames = (count - samplesRead) / channelCount; var received = soundTouch.ReceiveSamples(soundTouchReadBuffer, desiredSampleFrames) * channelCount; // use loop instead of Array.Copy due to WaveBuffer for (int n = 0; n < received; n++) { buffer[offset + samplesRead++] = soundTouchReadBuffer[n]; } if (received == 0 && reachedEndOfSource) { break; } } if (reachedEndOfSource && !endNotified) { PlaybackEnded.Invoke(this, new StoppedEventArgs()); endNotified = true; } return(samplesRead); }
private void OnPlaybackEnded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { PlaybackEnded?.Invoke(sender, EventArgs.Empty); if (Loop) { player.Position = TimeSpan.Zero; player.Play(); } }
void OnPlaybackEnded(object sender, EventArgs e) { Stop(); PlaybackEnded?.Invoke(sender, e); var startMessage = new UpdateEpisodeMessage { RssEpisode = Episode }; MessagingCenter.Send(startMessage, "PlaybackEnded"); }
void OnPlaybackEnded(object sender, EventArgs e) { PlaybackEnded?.Invoke(sender, e); //this improves stability on older devices but has minor performance impact if (Android.OS.Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.M) { player.SeekTo(0); player.Stop(); player.Prepare(); } }
private void OnPlaybackStopped(object sender, StoppedEventArgs e) { if (IsPlaying && Loop && CanSeek) { Seek(0); Play(); } else { PlaybackEnded?.Invoke(this, EventArgs.Empty); } }
void OnPlaybackEnded(object sender, EventArgs e) { PlaybackEnded?.Invoke(sender, e); //this improves stability on older devices but has minor performance impact // We need to check whether the player is null or not as the user might have dipsosed it in an event handler to PlaybackEnded above. if (player != null && Android.OS.Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.M) { player.SeekTo(0); player.Stop(); player.Prepare(); } }
void OnPlaybackEnded() { PlaybackEnded?.Invoke(this, EventArgs.Empty); }
private void OnPlaybackEnded(object sender, AVStatusEventArgs e) { PlaybackEnded?.Invoke(sender, e); }
private void RaisePlaybackEndedEvent(LoopPlayer loopPlayer, EventArgs args) { PlaybackEnded?.Invoke(loopPlayer, args); }
private void OnPlaybackEnded(MediaPlayer sender, object args) { PlaybackEnded?.Invoke(sender, EventArgs.Empty); }
void OnPlaybackEnded(object sender, EventArgs e) { PlaybackEnded?.Invoke(sender, e); }
protected virtual void OnPlaybackEnded(EventArgs e) { PlaybackEnded?.Invoke(this, e); }