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();
}
}
}
}