0

ビデオ ファイルを再生し、字幕 (.srt) を使用できるプレーヤーを埋め込む必要があります。

このタスクに使用できるプレーヤー (適切なドキュメントを含む) は? また、ファイルとサブタイトルを設定するにはどうすればよいですか?

4

1 に答える 1

1

回避策

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;
    }
}
于 2012-10-07T20:10:51.860 に答える