PDA

View Full Version : سوال: آیا این قطعه برنامه مربوط به زمانبندی srt هست ؟



ehsansoltanm
جمعه 01 دی 1391, 22:16 عصر
باسلام و خسته نباشید آیا قطعه برنامه زیر مربوط به زمانبندی SRT می باشد؟(مدیران محترم اگه تاپیک تکراری هست عذر میخوام چون چندروز پیش همچین تاپیکی ایجاد کردم ولی تا بیام ویرایشش کنم یه چند صفحه اون ورتر رفت و دوستان تاپیک منو ندیدن ) یاحق موفق باشین

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Threading;

class Program
{
private static Queue<Subtitle> _subtitles;

private static Subtitle _activeSubtitle;

private static TimeSpan _currentTime = new TimeSpan();

static void Main(string[] args)
{
_subtitles = new Queue<Subtitle>();

Subtitle title1 = new Subtitle()
{
StartTime = TimeSpan.Parse("00:00:01.000"),
EndTime = TimeSpan.Parse("00:00:5.400"),
Text = "p1 IS 05.000"
};

Subtitle title2 = new Subtitle()
{
StartTime = TimeSpan.Parse("00:00:5.900"),
EndTime = TimeSpan.Parse("00:00:10.500"),
Text = "p2 : TIMESPAN 5.000"
};

Subtitle title3 = new Subtitle()
{
StartTime = TimeSpan.Parse("00:00:10.900"),
EndTime = TimeSpan.Parse("00:00:20.100"),
Text = "p3 TIME SPAN "
};

_subtitles.Enqueue(title1);
_subtitles.Enqueue(title2);
_subtitles.Enqueue(title3);

Timer timer = new Timer(ShowSubtitles, null, 0, 100);

while (_currentTime <= new TimeSpan(0, 0, 1, 30))
{

}
Console.WriteLine("End");
}

private static void ShowSubtitles(object state)
{
Console.Clear();

if (_activeSubtitle == null && _subtitles.Count > 0)
_activeSubtitle = _subtitles.Dequeue();
// Console.WriteLine(_currentTime);

if (_activeSubtitle != null)
{


if (_currentTime >= _activeSubtitle.StartTime && _currentTime <= _activeSubtitle.EndTime)
Console.WriteLine(_activeSubtitle.Text);

if (_currentTime >= _activeSubtitle.EndTime)
_activeSubtitle = null;
}
_currentTime = _currentTime.Add(new TimeSpan(0, 0, 0, 0, 100));

}
}

internal class Subtitle
{
public TimeSpan StartTime { get; set; }
public TimeSpan EndTime { get; set; }
public string Text { get; set; }
}