void ShowMov::PlayStateChangeOcx1(long NewState) {
if (NewState == 1) { // 1 = 停止?實際應為 8 (MediaEnded)
m_Play.put_URL(_T("E:\\1111.avi")); // 不生效
}
}
| 值 | 常量 | 含義 |
|---|---|---|
| 0 | Undefined | 未定義 |
| 1 | Stopped | 停止 |
| 2 | Paused | 暫停 |
| 3 | Playing | 播放中 |
| 8 | MediaEnded | 播放結束 |
| 9 | Transitioning | 緩衝/轉換中 |
播放結束應判斷 NewState == 8。
put_URL 只設置源,不自動播放,需調用 m_control.play()。void ShowMov::PlayStateChangeOcx1(long NewState) {
static bool switching = false;
if (switching) return;
if (NewState == 8) { // MediaEnded
switching = true;
m_Play.put_URL(_T("E:\\1111.avi"));
m_Play.put_autoStart(TRUE); // 或
m_control.play();
switching = false;
}
}
TRACE(_T("State: %d\n"), NewState); 觀察實際觸發序列。m_Play.getError() 獲取詳細錯誤碼。