sajad.net
چهارشنبه 24 آبان 1391, 04:27 صبح
دلیل این که یه فایل ویدیویی که با سی شارپ ساخته می شه ریپ می زنه چیه
یعنی این که بعضی از مواقع فیلم به عقب برمی گرده و این کار برای چندین ثانیه ادامه داره
مثل مواقع ای که فایل های صوتی توی مدیا پلیر وقتی که کامپیوتر هنگ می کنه اتفاق می افته
اینم کدی که توی پلیر استفاده شده:
داخل کلاس
public DispatcherTimer _timer = new DispatcherTimer();
public int waitnum = 5000;
double TotalTime = 0;
------------------------
در سازنده کلاس
_timer.Interval = TimeSpan.FromSeconds(1) ;
_timer.Tick += new EventHandler(_timer_Tick);
-------------------------
در تابع اجرای فایل
me1.Source = new Uri(tempFile);
me1.LoadedBehavior = MediaState.Manual;
me1.Play();
Thread.Sleep(waitnum);
TotalTime = me1.NaturalDuration.TimeSpan.TotalSeconds;
slider1.Maximum = TotalTime;
_timer.Start();
---------------------------
void _timer_Tick(object sender, EventArgs e)
{
double tPass = me1.Position.TotalSeconds;
slider1.Value = tPass;
}
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
try
{
_timer.Stop();
TimeSpan t = TimeSpan.FromSeconds(slider1.Value);
me1.Position = t;
_timer.Start();
}
catch { }
}
-------------------------
یعنی این که بعضی از مواقع فیلم به عقب برمی گرده و این کار برای چندین ثانیه ادامه داره
مثل مواقع ای که فایل های صوتی توی مدیا پلیر وقتی که کامپیوتر هنگ می کنه اتفاق می افته
اینم کدی که توی پلیر استفاده شده:
داخل کلاس
public DispatcherTimer _timer = new DispatcherTimer();
public int waitnum = 5000;
double TotalTime = 0;
------------------------
در سازنده کلاس
_timer.Interval = TimeSpan.FromSeconds(1) ;
_timer.Tick += new EventHandler(_timer_Tick);
-------------------------
در تابع اجرای فایل
me1.Source = new Uri(tempFile);
me1.LoadedBehavior = MediaState.Manual;
me1.Play();
Thread.Sleep(waitnum);
TotalTime = me1.NaturalDuration.TimeSpan.TotalSeconds;
slider1.Maximum = TotalTime;
_timer.Start();
---------------------------
void _timer_Tick(object sender, EventArgs e)
{
double tPass = me1.Position.TotalSeconds;
slider1.Value = tPass;
}
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
try
{
_timer.Stop();
TimeSpan t = TimeSpan.FromSeconds(slider1.Value);
me1.Position = t;
_timer.Start();
}
catch { }
}
-------------------------