2009-07-16 52 views
0

有沒有辦法使用Windows Media Player SDK在特定位置停止視頻?我正在使用C#嵌入播放器,並試圖查看IWMPControls3接口是否在位置或時間方面具有任何停止能力。如果可以做到,那該怎麼做呢?使用Windows Media Player SDK在特定位置停止視頻

+1

爲什麼沒有使用暫停,然後put_currentPosition? – 2009-07-16 16:52:49

回答

1

它當然可以做到,但我不再記得這些技術。有很多方法可以很好地訪問數據流中的數據,以重建視頻的音頻和個別幀。人們編寫了系統,用戶可以輸入精確的時間和幀號,視頻播放器跳轉到該位置。

由於您的問題是「有沒有辦法」,答案是「是」。但是,我記不起足夠的細節來告訴你如何去做。

0

就像我在same question here解釋,你可以用一個定時器來控制CurrentPosition:

private Timer tmrWmpPlayerPosition; 
private TimeSpan StopPosition; 

private void btn_Click(object sender, EventArgs e) 
{ 
    wmpPlayer.Ctlcontrols.currentPosition = 4; 
    StopPosition=TimeSpan.Parse("00:20:20"); 
    StopWmpPlayerTimer(); 
    StartWmpPlayerTimer(); 
} 

private void tmrWmpPlayerPosition_Tick(object sender, EventArgs e) 
{ 
    if ((Convert.ToInt32(StopPosition.TotalSeconds) != Convert.ToInt32(wmpPlayer.Ctlcontrols.currentPosition))) return; 
    wmpPlayer.Ctlcontrols.pause(); 
    StopWmpPlayerTimer(); 
} 

private void StartWmpPlayerTimer() 
{ 
    tmrWmpPlayerPosition = new Timer(); 
    tmrWmpPlayerPosition.Tick += new EventHandler(tmrWmpPlayerPosition_Tick); 
    tmrWmpPlayerPosition.Enabled = true; 
    tmrWmpPlayerPosition.Interval = 1000; 
    tmrWmpPlayerPosition.Start(); 
} 

private void StopWmpPlayerTimer() 
{ 
    if (tmrWmpPlayerPosition != null) 
     tmrWmpPlayerPosition.Dispose(); 
    tmrWmpPlayerPosition = null; 
}