private void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (!_mediaEngine.HasVideo()) { return; } switch (mediaEvent) { case MediaEngineEvent.Play: _lastFrame = null; break; case MediaEngineEvent.Ended: if (IsLooped) { PlatformPlay(); return; } _state = MediaState.Stopped; break; } }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent != MediaEngineEvent.Ended) return; _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => OnSongFinishedPlaying(null, null)).AsTask(); }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent == MediaEngineEvent.Ended) { _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => OnSongFinishedPlaying(null, null)).AsTask(); } }
protected void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { switch (mediaEvent) { case MediaEngineEvent.Ended: if ((bool)this.mediaEngineEx.HasVideo()) { this.StopVideo(); } this.isEndOfStream = true; break; case MediaEngineEvent.Play: this.IsPlaying = true; break; case MediaEngineEvent.Pause: this.IsPlaying = false; break; case MediaEngineEvent.LoadedMetadata: this.isEndOfStream = false; break; case MediaEngineEvent.CanPlay: this.canPlay = true; this.Play(); break; } }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent == MediaEngineEvent.Ended) { OnSongFinishedPlaying(null, null); } }
private void OnPlaybackEvent(MediaEngineEvent mediaevent, long param1, int param2) { MediaEngineNotifyDelegate handler = PlaybackEvent; if (handler != null) { handler(mediaevent, param1, param2); } }
private void OnEngineEvent(MediaEngineEvent mediaevent, long param1, int param2) { switch (mediaevent) { case MediaEngineEvent.DurationChange: SetDuration(engine.Duration); break; case MediaEngineEvent.LoadStart: SetCurrentState(StreamPlayerState.LoadingSource); break; case MediaEngineEvent.LoadedMetadata: int x, y; engine.GetNativeVideoSize(out x, out y); using (var texture = new Texture2D(Device, new Texture2DDescription { Format = Format.B8G8R8A8_UNorm, Width = x, Height = y, ArraySize = 1, MipLevels = 1, SampleDescription = new SampleDescription { Count = 1 }, BindFlags = BindFlags.RenderTarget, })) { TargetSurface?.Dispose(); TargetSurface = texture.QueryInterface <Surface>(); OnNewSurface(x, y); SetCurrentTime(TimeSpan.Zero); } break; case MediaEngineEvent.CanPlay: SetCurrentState(StreamPlayerState.CanPlay); break; case MediaEngineEvent.CanPlayThrough: SetCurrentState(StreamPlayerState.CanPlayFully); break; case MediaEngineEvent.Error: // We don't want to throw on this thread, so instead break the debugger if (System.Diagnostics.Debugger.IsAttached) { var exception = System.Runtime.InteropServices.Marshal.GetExceptionForHR(param2); System.Diagnostics.Debugger.Break(); } break; } }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent != MediaEngineEvent.Ended) { return; } #if WINDOWS_PHONE _dispatcher.BeginInvoke(() => OnSongFinishedPlaying(null, null)); #else _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => OnSongFinishedPlaying(null, null)).AsTask(); #endif }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent == MediaEngineEvent.LoadedData) { if (_desiredPosition.HasValue) _mediaEngineEx.CurrentTime = _desiredPosition.Value.TotalSeconds; if (_sessionState == SessionState.Started) _mediaEngineEx.Play(); } if (mediaEvent == MediaEngineEvent.Ended) { _sessionState = SessionState.Stopped; _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => OnSongFinishedPlaying(null, null)).AsTask(); } }
protected virtual void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { switch (mediaEvent) { case MediaEngineEvent.NotifyStableState: SetEvent(new IntPtr(param1)); break; case MediaEngineEvent.LoadedMetadata: IsEndOfStream = false; break; case MediaEngineEvent.CanPlay: // Start the Playback Play(); break; case MediaEngineEvent.Play: IsPlaying = true; break; case MediaEngineEvent.Pause: IsPlaying = false; break; case MediaEngineEvent.Ended: IsEndOfStream = true; if (Looping) { Play(); } else { if (mediaEngineEx.HasVideo()) { StopVideo(); } } break; case MediaEngineEvent.TimeUpdate: break; case MediaEngineEvent.Error: break; } }
private void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { switch (mediaEvent) { case MediaEngineEvent.LoadedMetadata: break; case MediaEngineEvent.CanPlay: musicMediaEvents.Enqueue(new SoundMusicEventNotification(SoundMusicEvent.ReadyToBePlayed, null)); break; case MediaEngineEvent.Ended: musicMediaEvents.Enqueue(new SoundMusicEventNotification(SoundMusicEvent.EndOfTrackReached, null)); break; case MediaEngineEvent.Error: musicMediaEvents.Enqueue(new SoundMusicEventNotification(SoundMusicEvent.ErrorOccurred, new MediaEngineErrorCodes(param1, param2))); break; } }
/// <summary> /// Called when [playback callback]. /// </summary> /// <param name="playEvent">The play event.</param> /// <param name="param1">The param1.</param> /// <param name="param2">The param2.</param> internal static void OnPlaybackCallback(MediaEngineEvent playEvent, long param1, int param2) { switch (playEvent) { case MediaEngineEvent.CanPlay: eventReadyToPlay.Set(); break; case MediaEngineEvent.TimeUpdate: break; case MediaEngineEvent.Error: case MediaEngineEvent.Abort: case MediaEngineEvent.Ended: isMusicStopped = true; break; } }
private void Engine_PlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { Trace.TraceInformation(mediaEvent.ToString()); switch (mediaEvent) { case MediaEngineEvent.LoadStart: ErrorCode = MediaEngineErr.Noerror; break; case MediaEngineEvent.Error: ErrorCode = (MediaEngineErr)param1; break; case MediaEngineEvent.LoadedMetadata: _invalidated = true; break; } }
private static void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent == MediaEngineEvent.LoadedData) { if (_desiredPosition.HasValue) { _mediaEngineEx.CurrentTime = _desiredPosition.Value.TotalSeconds; } if (_sessionState == SessionState.Started) { _mediaEngineEx.Play(); } } if (mediaEvent == MediaEngineEvent.Ended) { _sessionState = SessionState.Stopped; _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => OnSongFinishedPlaying(null, null)).AsTask(); } }
/// <summary> /// Called when [playback callback]. /// </summary> /// <param name="playEvent">The play event.</param> /// <param name="param1">The param1.</param> /// <param name="param2">The param2.</param> private static void OnPlaybackCallback(MediaEngineEvent playEvent, long param1, int param2) { Console.Write("PlayBack Event received: {0}", playEvent); switch (playEvent) { case MediaEngineEvent.CanPlay: eventReadyToPlay.Set(); break; case MediaEngineEvent.TimeUpdate: Console.Write(" {0}", TimeSpan.FromSeconds(mediaEngineEx.CurrentTime)); break; case MediaEngineEvent.Error: case MediaEngineEvent.Abort: case MediaEngineEvent.Ended: isMusicStopped = true; break; } Console.WriteLine(); }
/// <summary> /// Executes the media engine event action. /// </summary> /// <param name="mediaEvent"> The media event. </param> /// <param name="param1"> The first parameter. </param> /// <param name="param2"> The second parameter. </param> private void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { switch (mediaEvent) { case MediaEngineEvent.NotifyStableState: Kernel32.SetEvent(new IntPtr(param1)); break; case MediaEngineEvent.LoadedMetadata: _isEndOfStream = false; break; case MediaEngineEvent.CanPlay: _eventReadyToPlay.Set(); break; case MediaEngineEvent.Play: _isPlaying = true; break; case MediaEngineEvent.Pause: _isPlaying = false; break; case MediaEngineEvent.Ended: if (_mediaEngineEx !.HasVideo()) { Stop(); } _isEndOfStream = true; break; case MediaEngineEvent.TimeUpdate: break; case MediaEngineEvent.Error: break; } }
private void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (!_mediaEngine.HasVideo()) return; switch (mediaEvent) { case MediaEngineEvent.Play: _lastFrame = null; break; case MediaEngineEvent.Ended: if (IsLooped) { PlatformPlay(); return; } _state = MediaState.Stopped; break; } }
public void OnPlaybackEvent(MediaEngineEvent mediaEngineEvent, long param1, int param2) { MediaEngine.OnPlaybackEvent(mediaEngineEvent, param1, param2); }
internal void OnPlaybackEvent(MediaEngineEvent @event, nuint param1, int param2) { PlaybackEvent?.Invoke(@event, param1, param2); }
void mediaEngine_PlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { if (mediaEvent == MediaEngineEvent.CanPlay) { if (this.mediaEngine.Error != null) { int a = 0; } if (this.mediaEngine.HasVideo()) { int width = 0; int height = 0; this.mediaEngine.GetNativeVideoSize(out width, out height); this.texture = new SharpDX.Direct3D11.Texture2D(this.context.D3DDevice, new SharpDX.Direct3D11.Texture2DDescription() { ArraySize = 1, Width = width, Height = height, Usage = SharpDX.Direct3D11.ResourceUsage.Default, Format = Format.B8G8R8A8_UNorm, CpuAccessFlags = SharpDX.Direct3D11.CpuAccessFlags.None, BindFlags = SharpDX.Direct3D11.BindFlags.RenderTarget | SharpDX.Direct3D11.BindFlags.ShaderResource, OptionFlags = SharpDX.Direct3D11.ResourceOptionFlags.None, SampleDescription = new SampleDescription(1, 0), MipLevels = 1, }); this.dxgiSurface = this.texture.QueryInterface<SharpDX.DXGI.Surface>(); this.textureView = new ShaderResourceView(this.context.D3DDevice, this.texture); ready = true; this.mediaEngine.Play(); } state = new RasterizerState(this.context.D3DDevice, new RasterizerStateDescription() { CullMode = CullMode.Back, FillMode = FillMode.Solid, DepthBias = 0, DepthBiasClamp = 0, IsDepthClipEnabled = true, IsMultisampleEnabled = true, SlopeScaledDepthBias = 0 }); } }
internal VideoStateChangedEventArgs(MediaEngineEvent oldValidState, MediaEngineEvent newState) { OldValidState = oldValidState; NewState = newState; }
/// <summary> /// Called when [playback callback]. /// </summary> /// <param name="playEvent">The play event.</param> /// <param name="param1">The param1.</param> /// <param name="param2">The param2.</param> private void OnPlaybackCallback(MediaEngineEvent playEvent, long param1, int param2) { switch (playEvent) { case MediaEngineEvent.ResourceLost: case MediaEngineEvent.StreamRenderingerror: case MediaEngineEvent.Suspend: case MediaEngineEvent.Abort: case MediaEngineEvent.Emptied: case MediaEngineEvent.Stalled: break; case MediaEngineEvent.LoadedMetadata: CompleteMediaInitialization(); break; case MediaEngineEvent.Error: Logger.Error($"Failed to load the video source. The file codec or format is likely not to be supported. MedieEngine error code=[{(MediaEngineErr)param1}], Windows error code=[{param2}]"); ReleaseMedia(); break; case MediaEngineEvent.FirstFrameReady: break; case MediaEngineEvent.LoadedData: break; case MediaEngineEvent.CanPlay: break; case MediaEngineEvent.Seeked: break; case MediaEngineEvent.Ended: reachedEOF = true; break; case MediaEngineEvent.LoadStart: case MediaEngineEvent.Progress: case MediaEngineEvent.Waiting: case MediaEngineEvent.Playing: case MediaEngineEvent.CanPlayThrough: case MediaEngineEvent.Seeking: case MediaEngineEvent.Play: case MediaEngineEvent.Pause: case MediaEngineEvent.TimeUpdate: case MediaEngineEvent.RateChange: case MediaEngineEvent.DurationChange: case MediaEngineEvent.VolumeChange: case MediaEngineEvent.FormatChange: case MediaEngineEvent.PurgeQueuedEvents: case MediaEngineEvent.TimelineMarker: case MediaEngineEvent.BalanceChange: case MediaEngineEvent.DownloadComplete: case MediaEngineEvent.BufferingStarted: case MediaEngineEvent.BufferingEnded: case MediaEngineEvent.FrameStepCompleted: case MediaEngineEvent.NotifyStableState: case MediaEngineEvent.Trackschange: case MediaEngineEvent.OpmInformation: case MediaEngineEvent.DelayloadeventChanged: break; default: throw new ArgumentOutOfRangeException(nameof(playEvent), playEvent, null); } }
private void MediaEngineExOnPlaybackEvent(MediaEngineEvent mediaEvent, long param1, int param2) { //throw new NotImplementedException(); }
protected virtual void OnMediaEngineEvent(MediaEngineEvent mediaEvent, long param1, int param2) { switch (mediaEvent) { case MediaEngineEvent.NotifyStableState: SetEvent(new IntPtr(param1)); break; case MediaEngineEvent.LoadedMetadata: isEndOfStream = false; break; case MediaEngineEvent.CanPlay: // Start the Playback Play(); break; case MediaEngineEvent.Play: IsPlaying = true; break; case MediaEngineEvent.Pause: IsPlaying = false; break; case MediaEngineEvent.Ended: if (mediaEngineEx.HasVideo()) { StopVideo(); } isEndOfStream = true; break; case MediaEngineEvent.TimeUpdate: break; case MediaEngineEvent.Error: break; } }
private void OnPlaybackEvent(MediaEngineEvent mediaevent, long param1, int param2) { MediaEngineNotifyDelegate handler = PlaybackEvent; if (handler != null) handler(mediaevent, param1, param2); }
/// <summary> /// Called when [playback callback]. /// </summary> /// <param name="playEvent">The play event.</param> /// <param name="param1">The param1.</param> /// <param name="param2">The param2.</param> private static void OnPlaybackCallback(MediaEngineEvent playEvent, long param1, int param2) { switch (playEvent) { case MediaEngineEvent.CanPlay: eventReadyToPlay.Set(); break; case MediaEngineEvent.TimeUpdate: break; case MediaEngineEvent.Error: case MediaEngineEvent.Abort: case MediaEngineEvent.Ended: isMusicStopped = true; break; } }