1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-23 20:34:07 +02:00

"Fix" an uncommon video player crash when closing short videos

Closes 
This commit is contained in:
chylex 2017-11-04 14:03:28 +01:00
parent ee2f5ae8cb
commit 2867a875c9

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Globalization; using System.Globalization;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
using TweetDuck.Video.Controls; using TweetDuck.Video.Controls;
@ -107,6 +108,7 @@ private void player_MediaError(object pMediaObject){
Environment.Exit(Program.CODE_MEDIA_ERROR); Environment.Exit(Program.CODE_MEDIA_ERROR);
} }
[HandleProcessCorruptedStateExceptions]
private void timerSync_Tick(object sender, EventArgs e){ private void timerSync_Tick(object sender, EventArgs e){
if (NativeMethods.GetWindowRect(ownerHandle, out NativeMethods.RECT rect)){ if (NativeMethods.GetWindowRect(ownerHandle, out NativeMethods.RECT rect)){
int width = rect.Right-rect.Left+1; int width = rect.Right-rect.Left+1;
@ -139,9 +141,14 @@ private void timerSync_Tick(object sender, EventArgs e){
} }
if (controls.currentPosition > media.duration){ // pausing near the end of the video causes WMP to play beyond the end of the video wtf if (controls.currentPosition > media.duration){ // pausing near the end of the video causes WMP to play beyond the end of the video wtf
controls.stop(); try{
controls.currentPosition = 0; controls.stop();
controls.play(); controls.currentPosition = 0;
controls.play();
}catch(AccessViolationException){
// something is super retarded here because shit gets disposed between the start of this method and
// the controls.play() call even though it runs on the UI thread
}
} }
if (isCursorInside && !wasCursorInside){ if (isCursorInside && !wasCursorInside){