ビデオ ファイルを再生し、字幕 (.srt) を使用できるプレーヤーを埋め込む必要があります。
このタスクに使用できるプレーヤー (適切なドキュメントを含む) は? また、ファイルとサブタイトルを設定するにはどうすればよいですか?
ビデオ ファイルを再生し、字幕 (.srt) を使用できるプレーヤーを埋め込む必要があります。
このタスクに使用できるプレーヤー (適切なドキュメントを含む) は? また、ファイルとサブタイトルを設定するにはどうすればよいですか?
Windows Media Player COM オブジェクトを追加します。
タイマーを追加する
private Timer playingTimer = new Timer();
public Main()
{
InitializeComponent();
playingTimer.Enabled = false;
playingTimer.Tick += renderSubtitles;
}
StatusChange を処理して、いつ再生を開始するかを知る
private void Main_Load(object sender, EventArgs e)
{
player.StatusChange += player_StatusChange;
}
プレイ中にタイマーを有効にする
void player_StatusChange(object sender, EventArgs e)
{
if (player.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
playingTimer.Enabled = true;
}
else
{
playingTimer.Enabled = false;
}
}
から現在の秒数を取得しplayer.Ctlcontrols.currentPosition
、字幕が見つかった場合はラベルを表示し、テキストを設定して水平方向に中央揃えにします。字幕がない場合は、ラベルを非表示にします。
private void renderSubtitles(object sender, EventArgs e)
{
var ts = TimeSpan.FromSeconds(player.Ctlcontrols.currentPosition);
var entry = entries.FirstOrDefault(o => o.Start <= ts && o.End >= ts);
if (entry != null)
{
subtitle.Visible = true;
subtitle.Text = entry.Text;
var w = splitContainer.Panel1.Width;
subtitle.Location = new Point(w / 2 - subtitle.Width / 2, subtitle.Location.Y);
}
else
{
subtitle.Visible = false;
}
}