using Common.system; using System; using System.Diagnostics; using System.Windows; using System.Windows.Input; using XHWK.Model; using XHWK.WKTool.DAL; namespace XHWK.WKTool.UControl { using system; /// /// 视频信息 /// public partial class UcVideoItem { #region 初始值 /// /// 视频模型 /// private ModelVideo _videoModel; /// /// 刷新视频列表 /// public delegate void RefreshVideoList(); /// /// 刷新视频列表事件 /// public event RefreshVideoList ClickRefreshVideoList; /// /// 登录 /// public delegate void UploadLogin(); /// /// 登录事件 /// public event UploadLogin ClickUploadLogin; /// /// 上传页面 /// private UploadWindow _wUploadWindow; #endregion 初始值 #region 初始化 /// /// 视频信息 /// /// public UcVideoItem(ModelVideo modelVideo) { InitializeComponent(); App.IsUpLoad = false; _videoModel = modelVideo; 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.IsEnabled = false; BtnUpload.Background.Opacity = 0.6; } } #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; } } /// /// 失去焦点保存视频名 /// /// /// 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; } else { MessageWindow.Show(errMessage); } } else { TbName.Visibility = Visibility.Visible; GridModify.Visibility = Visibility.Hidden; } } /// /// 修改视频文件名 /// /// /// 新文件名带后缀 不带路径 /// 错误信息 /// private bool ModifyPathName(string fileGuid, string newName, out string errmessage) { errmessage = ""; foreach (ModelWkData wkData in App.WKDataList) { if (wkData.VideoList.Exists(x => x.FileGuid == fileGuid)) { ModelVideo modelVideo = wkData.VideoList.Find(x => x.FileGuid == fileGuid); string filePathName = modelVideo.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; } //修改文件名 FileToolsCommon.Copy(filePathName, newFilePathName); modelVideo.VideoPath = newFilePathName; //修改缩略图名 FileToolsCommon.DeleteFile(thumbnailPathName); FileToolsCommon.Copy(modelVideo.ThumbnailPath, thumbnailPathName); modelVideo.ThumbnailPath = thumbnailPathName; App.SaveWkData(); return true; } } errmessage = "视频文件有改动,当前文件不存在,请关闭后重新打开“我的”"; return false; } #endregion 修改视频名 #region 删除视频 /// /// 删除视频 /// /// /// private void BtnDelVideo_Click(object sender, RoutedEventArgs e) { MessageBoxResult dr = MessageWindow.Show("确定删除该视频?", "提示", MessageBoxButton.OKCancel); if (dr == MessageBoxResult.OK) { foreach (ModelWkData 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)); //初始化页面 刷新视频列表 if (ClickRefreshVideoList != null) { ClickRefreshVideoList(); } 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.Logerror.Error("【视频播放】(BtnVideoPlay_Click)" + ex.Message, ex); System.Windows.MessageBox.Show(ex.Message); } } /// /// 视频播放 /// /// /// 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.Logerror.Error("【视频播放】(BtnVideoPlay_Click)" + ex.Message, ex); System.Windows.MessageBox.Show(ex.Message); } } #endregion 播放视频 /// /// 视频上传 /// /// /// private void BtnUpload_Click(object sender, RoutedEventArgs e) { if (App.IsLoginType == false) { //登录 if (ClickUploadLogin != null) { ClickUploadLogin(); } if (App.IsLoginType == false) { return; } } if (!App.IsUpLoad) { App.IsUpLoad = true; DalUpload dAlUpload = new DalUpload(); if (dAlUpload.UploadVideo(_videoModel.FileGuid, out string errMessage)) { App.IsUpLoad = false; //MessageWindow.Show("视频上传服务器成功!"); if (_wUploadWindow == null) { _wUploadWindow = new UploadWindow { Owner = App.W_XHMicroLessonSystemWindow }; _wUploadWindow.ChangeTextEvents += frm_ChangeTextEvents; } //long size = Convert.ToInt64(FileToolsCommon.GetFileSizeByMB(pageData.menuList[i].FilePath)); _wUploadWindow.Initialize( TbName.Text, _videoModel.VideoSizebyte, _videoModel.VideoType.ToString(), _videoModel.FileGuid, 0 ); } else { App.IsUpLoad = false; MessageWindow.Show(errMessage); } } } /// /// 上传返回事件 /// /// /// private void frm_ChangeTextEvents(string text, int i) { if ("上传成功".Equals(text)) { _wUploadWindow.Close(); 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(); } } } }