ã¯ããã«ïŒåç»ãåå²ããã«ã¯ããžã§ã管çããæ¬ ãããªã
ãã®åç»åå²ããŒã«ã®ç®çæ©èœã¯ããè€æ°åºéã®èšå®ãããŠãäžæ¬ã§åºåã§ãããããšã§ãã
ãã®ããã«å¿
èŠãªã®ããâãžã§ãâã®ç®¡çæ©èœã
ãžã§ããšã¯ã次ã®3ã€ã®æ å ±ãããªãåå²æç€ºã®ããšïŒ
- â éå§æéïŒhh : mm : ssïŒ
- â çµäºæéïŒhh : mm : ssïŒ
- â åºåãã¡ã€ã«åïŒæ¡åŒµåãªãã§æåã§ç·šéãå¯èœãšãªã£ãŠãããŸããïŒ
ãããã DataGridView ã«1è¡ãã€ç»é²ããŠããããšã§ãè€æ°ãžã§ãã䞊ã¹ãŠç®¡çã§ããããã«ãªã£ãŠããŸãã
Copilotã«ã¯ããžã§ãäžèЧãšããŠDataGridViewã䜿ã£ãŠãæéãšãã¡ã€ã«åãšåé€ãã¿ã³ã衚瀺ããŠã»ããããšæç€ºããŸããã
UIèšèšïŒDataGridViewã®4åæ§æ
Designer.cs åŽã®ã³ãŒãã§ä»¥äžãå®çŸ©ïŒ
dgvJobs.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgvJobs.Columns.Add("Start", "éå§æé (hh:mm:ss)");
dgvJobs.Columns.Add("End", "çµäºæé (hh:mm:ss)");
dgvJobs.Columns.Add("FileName", "åºåãã¡ã€ã«åïŒæ¡åŒµåãªãïŒ");
var deleteButtonCol = new DataGridViewButtonColumn();
deleteButtonCol.HeaderText = "æäœ";
deleteButtonCol.Name = "Delete";
deleteButtonCol.Text = "åé€";
deleteButtonCol.UseColumnTextForButtonValue = true;
deleteButtonCol.Width = 60;
dgvJobs.Columns.Add(deleteButtonCol);
ãã®æ§æã«ãããæéãšãã¡ã€ã«åãå ¥åãã3åïŒåé€ãã¿ã³ã®1åãèš4åã衚瀺ãããŸãã
Copilotã«ããã¿ã³åã«ã¯ã©ãã«âæäœâãä»ããŠã衚瀺æåã¯âåé€âã«ããŠããšäŒããããšã§ãèŠèªæ§ãæ¹åãããŸããã
æéæå®ïŒéå§ã»çµäºãã¯ã³ã¯ãªãã¯ã§èšé²ãã
åçäžã«ããã®ã¿ã€ãã³ã°ãéå§ã«ãããããä»ã®äœçœ®ãçµäºã«ãããããšãããšãããã¿ã³ãæŒãã ãã§æéãèªåå ¥åãããŸãã
private void BtnSetStart_Click(object sender, EventArgs e)
{
var row = dgvJobs.CurrentRow ?? dgvJobs.Rows[dgvJobs.Rows.Add()];
row.Cells[0].Value = TimeSpan.FromSeconds(slider.Value).ToString(@"hh\:mm\:ss");
if (dgvJobs.CurrentRow.Index == dgvJobs.Rows.Count - 1)
dgvJobs.Rows.Add();
dgvJobs.CurrentCell = dgvJobs.Rows[dgvJobs.Rows.Count - 1].Cells[0];
markerOverlay.Invalidate();
}
ãã®æ©èœã«å¯ŸããŠãCopilotã«ã¯ããæç€ºããŸããïŒ
ð¬ãéå§ãèšå®ããããæ°ããè¡ãèªå远å ããŠéžæãé²ããŠã»ããã
ð¬ãDataGridViewã®æçµè¡ã§ããã°æ¬¡è¡ã远å ããéžæãæ¬¡ãžç§»ããŠã
ãã®çºæ³ã¯ãâãŠãŒã¶ãŒã次ã®ãžã§ããããã«ç»é²ã§ããããã«ããâãšããé æ ®ããçãŸããŸããã
ãã¡ã€ã«åã®èªåçæ
çµäºæéãç»é²ãããšãããã¡ã€ã«åãæªå ¥åã®å Žåã¯èªåã§çæããæ©èœããããŸãïŒ
if (string.IsNullOrWhiteSpace(row.Cells[2]?.Value?.ToString()))
row.Cells[2].Value = "cut_" + DateTime.Now.ToString("HHmmss");
Copilotã«ãçµäºãèšå®ãããšãããã¡ã€ã«åã空ãªãèªåã§äœã£ãŠã»ããããšèšã£ããšããã
âcut_âïŒæå»ãšããäžæãªåœåã«ãŒã«ãŸã§èæ
®ããŠè¿ããŠãããŸããã
ãã®ãããªâäœæ¥ãæžããé æ ®âãAIã¯äžå¯§ã«å®è£ ããŠãããŸãã
å逿©èœïŒ1ã¯ãªãã¯ã§ãžã§ããé€å»
åé€ãã¿ã³åã远å ããããšã§ããŠãŒã¶ãŒãäžèŠã«ãªã£ããžã§ããããã«æ¶ããããã«ãªããŸããã
ã€ãã³ãåŠçã¯ä»¥äžã®éãïŒ
private void DgvJobs_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 3 && e.RowIndex >= 0)
{
dgvJobs.Rows.RemoveAt(e.RowIndex);
markerOverlay.Invalidate();
}
}
ColumnIndexã3ïŒåé€åïŒã§ãããããã§ãã¯ãã該åœè¡ãåé€ã
ãã®åŸ Invalidate()
ã«ãã£ãŠããŒã«ãŒæç»ã峿޿°ãããŸãã
Copilotã«ãåé€ããè¡ã®ããŒã«ãŒãæ®ããªãããã«ããŠããšäŒããçµæã§ãã
ãžã§ãæ§æã®æè»æ§
çè ã¯Copilotã«ãéå§ã®ã¿ãçµäºã®ã¿ã®ãžã§ããæ³å®ããŠæç»ããŠããšäŒããŸãããçµæçã«ïŒ
- éå§ã®ã¿ â ããŒã«ãŒç·ïŒãªã¬ã³ãžïŒ
- çµäºã®ã¿ â ããŒã«ãŒç·ïŒãªã¬ã³ãžïŒ
- éå§ïŒçµäº â ããŒã«ãŒå¡ãã€ã¶ãïŒãªã¬ã³ãžïŒ
ãšãªã£ãŠãããäžå®å šãªãžã§ãã§ãèŠèŠçã«ååšæã瀺ããŠãããããã«ãªããŸããã
å®éã®åŠçã§ã¯ TryParse()
ã䜿ã£ãŠç¡å¹ããŒã¿ã«åãã€ã€ãæç»æ¡ä»¶ãå€å®ããŠããŸãã
Copilotãšé²ãããžã§ãæ©èœã®å®æã¹ããã
ãã®ãžã§ãæ©èœã¯ãCopilotãšã®ããåããç¹°ãè¿ããªããé²ããæ©èœã§ããããŸãã
éäžã®ããã³ããäŸïŒ
- ãéå§ïŒçµäºãèšå®ãããæ¬¡ã®è¡ã«é²ãããã
- ããžã§ãã®ãã¡ã€ã«åããªããªãèªååœåãããã
- ãåé€ãã¿ã³åã«ã©ãã«âæäœâã衚瀺ãããã
- ãåé€ãããæç»ãæŽæ°ããŠã»ããã
- ãéå§ïŒçµäºãäžå®å šã§ãããŒã«ãŒæç»ã¯ããŠã»ããã
ãŸãšãïŒãžã§ãæ©èœã¯æäœã®æ žããããŠCopilotãå®ç§ã«æ¯ããŠããã
ãã®åã®èŠç¹ãæŽçããŸãïŒ
æ©èœ | å®è£ ãã€ã³ã | AIãšã®é£æº |
---|---|---|
ãžã§ãäžèЧ | DataGridViewæ§æïŒ4åïŒ | åã©ãã«ãšåé€ãã¿ã³è¿œå |
æéèšå® | ãã¿ã³ â çŸåšåçäœçœ®ãèšé² | èªåè¡è¿œå ãšéžæç§»å |
ãã¡ã€ã«åèªåçæ | æªå
¥åæã« cut_ïŒæå» åœå |
AIãåœåã«ãŒã«ãææ¡ |
åé€åŠç | ãã¿ã³åïŒã¯ãªãã¯ã€ãã³ã | ããŒã«ãŒæç»ã峿޿° |
ãã®ããŒã«ã®äœ¿ããããã¯ãCopilotãšé²ãããžã§ãèšèšã®æ£ç¢ºãã«æ¯ããããŠããŸãã
ç§èªèº«ãC#ã«äžæ
£ãã§ãããããããããšããäŒãç¶ããããšã§ããããŸã§ã®å®æåºŠã«ä»äžãããŸããã
次åïŒç¬¬7åãffmpeg飿ºç·šã
- ffmpegã®èªåååŸïŒä¿åæ©èœ
- åãžã§ãã«å¯ŸããŠæ£ç¢ºãª
-ss
ïŒ-to
ã³ãã³ãçæ - ããã¯ã°ã©ãŠã³ãå®è¡ãšé²æããŒè¡šç€º
- ã³ãŒããã¯æå®ãšãã¡ã€ã«ååŠçã®å·¥å€«