using Common.system; using System; using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using XHWK.Model; using XHWK.WKTool.DAL; namespace XHWK.WKTool.UControl { /// /// 视频信息 /// public partial class Uc_VideoItem : UserControl { #region 初始值 /// /// 视频模型 /// private Model_Video VideoModel = new Model_Video(); /// /// 刷新视频列表 /// public delegate void RefreshVideoList(); /// /// 刷新视频列表事件 /// public event RefreshVideoList Click_refreshVideoList; /// /// 登录 /// public delegate void UploadLogin(); /// /// 登录事件 /// public event UploadLogin Click_UploadLogin; /// /// 上传页面 /// private UploadWindow W_UploadWindow = null; #endregion #region 初始化 /// /// 视频信息 /// /// public Uc_VideoItem(Model_Video model_Video) { InitializeComponent(); APP.IsUpLoad = false; VideoModel = model_Video; DataContext = APP.PageContextData; if (FileToolsCommon.IsExistFile(VideoModel.ThumbnailPath)) { ImgVideo.Source = ImageHelper.ReadBitmapImageFile(VideoModel.ThumbnailPath);// new BitmapImage(new Uri(VideoModel.ThumbnailPath)); } string videoName = FileToolsCommon.GetIOFileNameNoExtension(VideoModel.VideoPath); TbName.Text = videoName.Length > 11 ? videoName.Substring(0, 11) + "..." : videoName; TbName.ToolTip = videoName; lblDateSize.Content = VideoModel.RSTime + " " + VideoModel.VideoSize; if (VideoModel.IsUpload) { BtnUpload.Visibility = Visibility.Hidden; } } #endregion #region 修改视频名 /// /// 双击修改视频名 /// /// /// private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ClickCount == 2) { TxtModify.Text = TbName.ToolTip.ToString(); TbName.Visibility = Visibility.Hidden; GridModify.Visibility = Visibility.Visible; //BtnNameModifyOK.Visibility = Visibility.Visible; } } /// /// 失去焦点保存视频名 /// /// /// private void TxtModify_LostFocus(object sender, RoutedEventArgs e) { ModifyVideoName(); } /// /// Enter保存 /// /// /// private void TxtModify_KeyUp(object sender, KeyEventArgs e) { if (e.Key == System.Windows.Input.Key.Enter) { ModifyVideoName(); } } /// /// 修改文件名保存 /// /// /// private void BtnNameModifyOK_Click(object sender, RoutedEventArgs e) { ModifyVideoName(); } /// /// 修改视频文件名 /// private void ModifyVideoName() { if (TxtModify.Text != TbName.Text) { if (ModifyPathName(VideoModel.FileGuid, TxtModify.Text + "." + VideoModel.VideoType, out string ErrMessage)) { //保存成功 TbName.Text = TxtModify.Text.Length > 11 ? TxtModify.Text.Substring(0, 11) + "..." : TxtModify.Text; TbName.ToolTip = TxtModify.Text; TbName.Visibility = Visibility.Visible; GridModify.Visibility = Visibility.Hidden; //BtnNameModifyOK.Visibility = Visibility.Hidden; } else { MessageWindow.Show(ErrMessage); } } else { TbName.Visibility = Visibility.Visible; GridModify.Visibility = Visibility.Hidden; //BtnNameModifyOK.Visibility = Visibility.Hidden; } } /// /// 修改视频文件名 /// /// 唯一编号 /// 新文件名带后缀 不带路径 /// 错误信息 /// private bool ModifyPathName(string FileGuid, string NewName, out string Errmessage) { Errmessage = ""; foreach (Model_WKData WKData in APP.WKDataList) { if (WKData.VideoList.Exists(x => x.FileGuid == FileGuid)) { Model_Video model_Video = WKData.VideoList.Find(x => x.FileGuid == FileGuid); string filePathName = model_Video.VideoPath; string filePath = FileToolsCommon.GetDirectoryName(filePathName); string newFilePathName = filePath + NewName; //缩略图 string ThumbnailPath = filePath + "ThumbnailPath/"; FileToolsCommon.CreateDirectory(ThumbnailPath); //缩略图存储位置 string ThumbnailPathName = ThumbnailPath + NewName.Replace(".", "") + ".JPG"; if (FileToolsCommon.IsExistFile(newFilePathName)) { Errmessage = "文件已存在,请重新修改文件名!"; return false; } else { //修改文件名 FileToolsCommon.Copy(filePathName, newFilePathName); model_Video.VideoPath = newFilePathName; //修改缩略图名 FileToolsCommon.DeleteFile(ThumbnailPathName); FileToolsCommon.Copy(model_Video.ThumbnailPath, ThumbnailPathName); model_Video.ThumbnailPath = ThumbnailPathName; APP.SaveWkData(); return true; } } else { continue; } } Errmessage = "视频文件有改动,当前文件不存在,请关闭后重新打开“我的”"; return false; } #endregion #region 删除视频 /// /// 删除视频 /// /// /// private void BtnDelVideo_Click(object sender, RoutedEventArgs e) { MessageBoxResult dr = MessageWindow.Show("确定删除该视频?", "提示", MessageBoxButton.OKCancel); if (dr == MessageBoxResult.OK) { foreach (Model_WKData wKData in APP.WKDataList) { if (wKData.VideoList == null) { continue; } if (wKData.VideoList.Exists(x => x.FileGuid == VideoModel.FileGuid)) { try { FileToolsCommon.DeleteFile(wKData.VideoList.Find(x => x.FileGuid == VideoModel.FileGuid).VideoPath); string ThumbnailPath = wKData.VideoList.Find(x => x.FileGuid == VideoModel.FileGuid).ThumbnailPath; wKData.VideoList.Remove(wKData.VideoList.Find(x => x.FileGuid == VideoModel.FileGuid)); //初始化页面 刷新视频列表 Click_refreshVideoList(); ImgVideo.Source = null; GC.Collect(); FileToolsCommon.DeleteFile(ThumbnailPath); Visibility = Visibility.Hidden; return; } catch (Exception ex) { MessageWindow.Show("无法删除视频!" + ex.Message); return; } } } } } #endregion #region 播放视频 private void BtnVideoPlay_Click(object sender, RoutedEventArgs e) { try { ProcessStartInfo psi = new ProcessStartInfo(VideoModel.VideoPath); Process pro = new Process { StartInfo = psi }; pro.Start(); } catch (Exception ex) { LogHelper.WriteErrLog("【视频播放】(BtnVideoPlay_Click)" + ex.Message, ex); System.Windows.MessageBox.Show(ex.Message); return; } } /// /// 视频播放 /// /// /// private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { try { ProcessStartInfo psi = new ProcessStartInfo(VideoModel.VideoPath); Process pro = new Process { StartInfo = psi }; pro.Start(); } catch (Exception ex) { LogHelper.WriteErrLog("【视频播放】(BtnVideoPlay_Click)" + ex.Message, ex); System.Windows.MessageBox.Show(ex.Message); return; } } #endregion /// /// 视频上传 /// /// /// private void BtnUpload_Click(object sender, RoutedEventArgs e) { if (APP.IsLoginType == false) { //登录 Click_UploadLogin(); if (APP.IsLoginType == false) { return; } } if (!APP.IsUpLoad) { APP.IsUpLoad = true; //BtnUpload.IsEnabled = false; //BtnUpload.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#9EA0A7")); //BtnUpload.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#999999")); DAL_Upload dAL_Upload = new DAL_Upload(); if (dAL_Upload.UploadVideo(VideoModel.FileGuid, out string ErrMessage)) { APP.IsUpLoad = false; //MessageWindow.Show("视频上传服务器成功!"); if (W_UploadWindow == null) { W_UploadWindow = new UploadWindow { Owner = APP.W_XHMicroLessonSystemWindow }; W_UploadWindow.ChangeTextEvents += frm_ChangeTextEvents; ; } //long size = Convert.ToInt64(FileToolsCommon.GetFileSizeByMB(pageData.menuList[i].FilePath)); W_UploadWindow.Initialize(TbName.Text, VideoModel.VideoSizebyte, VideoModel.VideoType.ToString(), VideoModel.FileGuid, 0); W_UploadWindow.ShowDialog(); } else { APP.IsUpLoad = false; MessageWindow.Show(ErrMessage); } } } /// /// 上传返回事件 /// /// private void frm_ChangeTextEvents(string text, int i) { if ("上传成功".Equals(text)) { W_UploadWindow.Close(); //BorUploadBtn.Visibility = Visibility.Hidden; BtnUpload.IsEnabled = false; BtnUpload.Background.Opacity = 0.6; } } /// /// 编辑 /// /// /// private void Button_Click(object sender, RoutedEventArgs e) { if (APP.W_VideoClipWindow == null) { APP.W_VideoClipWindow = new VideoClipWindow(); } if (APP.W_VideoClipWindow.InitClipVideo(VideoModel.VideoPath)) { APP.W_VideoClipWindow.ShowDialog(); } } } }