Browse Source

Merge remote-tracking branch 'origin/zyy' into zhangxueyang

tags/录制修改前
zhangxueyang 4 years ago
parent
commit
dabd37e31d

+ 109
- 0
Common/AESHelper.cs View File

1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Security.Cryptography;
5
+using System.Text;
6
+using System.Threading.Tasks;
7
+
8
+namespace Common
9
+{
10
+    /// <summary>
11
+    /// AES加密
12
+    /// 创建人:赵耀
13
+    /// 创建时间:2020年9月7日
14
+    /// </summary>
15
+    public class AESHelper
16
+    {
17
+        public static string QrcodeLoginKey = "zyyxhlywkdatakey";
18
+
19
+        /// <summary>
20
+        /// AES 加密
21
+        /// </summary>
22
+        /// <param name="content">Need encrypted string</param>
23
+        /// <returns>Encrypted 16 hex string</returns>
24
+        public static string AESEncrypt(String Data)
25
+        {
26
+            string key = QrcodeLoginKey.PadRight(16, '0');
27
+            // 256-AES key      
28
+            byte[] keyArray = UTF8Encoding.ASCII.GetBytes(key);
29
+            byte[] toEncryptArray = UTF8Encoding.ASCII.GetBytes(Data);
30
+
31
+            RijndaelManaged rDel = new RijndaelManaged();
32
+            rDel.Key = keyArray;
33
+            rDel.Mode = CipherMode.ECB;
34
+            rDel.Padding = PaddingMode.PKCS7;
35
+
36
+            ICryptoTransform cTransform = rDel.CreateEncryptor();
37
+            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0,
38
+                    toEncryptArray.Length);
39
+
40
+            return BytesToHexString(resultArray);
41
+        }
42
+
43
+        /// <summary>
44
+        /// AES 解密
45
+        /// </summary>
46
+        /// <param name="hexString">Encrypted 16 hex string</param>
47
+        /// <returns>Decrypted string</returns>
48
+        public static string AESDecrypt(String hexString)
49
+        {
50
+            string key = QrcodeLoginKey.PadRight(16, '0');
51
+            // 256-AES key      
52
+            byte[] keyArray = UTF8Encoding.ASCII.GetBytes(key);
53
+            byte[] toEncryptArray = HexStringToBytes(hexString);
54
+
55
+            RijndaelManaged rDel = new RijndaelManaged();
56
+            rDel.Key = keyArray;
57
+            rDel.Mode = CipherMode.ECB;
58
+            rDel.Padding = PaddingMode.PKCS7;
59
+
60
+            ICryptoTransform cTransform = rDel.CreateDecryptor();
61
+            byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0,
62
+                    toEncryptArray.Length);
63
+
64
+            return UTF8Encoding.ASCII.GetString(resultArray);
65
+        }
66
+
67
+        /// <summary>
68
+        /// Byte array to convert 16 hex string
69
+        /// </summary>
70
+        /// <param name="bytes">byte array</param>
71
+        /// <returns>16 hex string</returns>
72
+        public static string BytesToHexString(byte[] bytes)
73
+        {
74
+            StringBuilder returnStr = new StringBuilder();
75
+            if (bytes != null || bytes.Length == 0)
76
+            {
77
+                for (int i = 0; i < bytes.Length; i++)
78
+                {
79
+                    returnStr.Append(bytes[i].ToString("X2"));
80
+                }
81
+            }
82
+            return returnStr.ToString();
83
+        }
84
+
85
+        /// <summary>
86
+        /// 16 hex string converted to byte array
87
+        /// </summary>
88
+        /// <param name="hexString">16 hex string</param>
89
+        /// <returns>byte array</returns>
90
+        public static byte[] HexStringToBytes(String hexString)
91
+        {
92
+            if (hexString == null || hexString.Equals(""))
93
+            {
94
+                return null;
95
+            }
96
+            int length = hexString.Length / 2;
97
+            if (hexString.Length % 2 != 0)
98
+            {
99
+                return null;
100
+            }
101
+            byte[] d = new byte[length];
102
+            for (int i = 0; i < length; i++)
103
+            {
104
+                d[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
105
+            }
106
+            return d;
107
+        }
108
+    }
109
+}

+ 1
- 0
Common/Common.csproj View File

116
     <Reference Include="WindowsFormsIntegration" />
116
     <Reference Include="WindowsFormsIntegration" />
117
   </ItemGroup>
117
   </ItemGroup>
118
   <ItemGroup>
118
   <ItemGroup>
119
+    <Compile Include="AESHelper.cs" />
119
     <Compile Include="Model\DownloadInfoModel.cs" />
120
     <Compile Include="Model\DownloadInfoModel.cs" />
120
     <Compile Include="system\LatticeFileHelper.cs" />
121
     <Compile Include="system\LatticeFileHelper.cs" />
121
     <Compile Include="system\PdfTrunImage.cs" />
122
     <Compile Include="system\PdfTrunImage.cs" />

+ 1
- 1
Common/system/BlackboardNew.cs View File

332
         StylusPointCollection stylusPoints = new StylusPointCollection();
332
         StylusPointCollection stylusPoints = new StylusPointCollection();
333
         StylusPoint stylusPoint = new StylusPoint();
333
         StylusPoint stylusPoint = new StylusPoint();
334
         Stroke stroke;
334
         Stroke stroke;
335
-        bool isFirst = true;
335
+        //bool isFirst = true;
336
         //public void changepages(double _x, double _y, bool _new, Color _color, int _size)
336
         //public void changepages(double _x, double _y, bool _new, Color _color, int _size)
337
         //{
337
         //{
338
         //    if (_new)
338
         //    if (_new)

+ 92
- 0
Common/system/QueueSync.cs View File

1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Text;
5
+using System.Threading.Tasks;
6
+
7
+namespace Common.system
8
+{
9
+    /// <summary>
10
+    /// 队列操作类 默认队列数1000
11
+    /// 创建人:赵耀
12
+    /// 创建时间:2019年8月22日
13
+    /// </summary>
14
+    /// <typeparam name="T"></typeparam>
15
+    public class QueueSync<T>
16
+    {
17
+        int _maxcount = 10000;
18
+        Queue<T> _queue = new Queue<T>();
19
+        /// <summary>
20
+        /// 获取该队列包含的元素数
21
+        /// </summary>
22
+        public int Count
23
+        {
24
+            get
25
+            {
26
+                if (_queue == null)
27
+                {
28
+                    return 0;
29
+                }
30
+                else
31
+                {
32
+                    return _queue.Count;
33
+                }
34
+            }
35
+        }
36
+
37
+        /// <summary>
38
+        /// 默认1000
39
+        /// </summary>
40
+        public QueueSync() : this(1000) { }
41
+
42
+        /// <summary>
43
+        /// 定义一个指定容量的队列
44
+        /// </summary>
45
+        /// <param name="maxcount"></param>
46
+        public QueueSync(int maxcount)
47
+        {
48
+            //_maxcount = Math.Max(maxcount, _maxcount);
49
+            _maxcount = maxcount;
50
+        }
51
+
52
+        /// <summary>
53
+        /// 入队列
54
+        /// </summary>
55
+        /// <param name="obj"></param>
56
+        /// <returns></returns>
57
+        public bool Enqueue(T obj)
58
+        {
59
+            bool result = false;
60
+            lock (this)
61
+            {
62
+                if (_queue.Count > _maxcount)
63
+                {
64
+                    _queue.Dequeue();
65
+                }
66
+                _queue.Enqueue(obj);
67
+                result = true;
68
+            }
69
+            return result;
70
+        }
71
+        /// <summary>
72
+        /// 出队列
73
+        /// </summary>
74
+        /// <returns></returns>
75
+        public T Dequeue()
76
+        {
77
+            T obj = default(T);
78
+            lock (this)
79
+            {
80
+                try
81
+                {
82
+                    obj = _queue.Dequeue();
83
+                }
84
+                catch
85
+                {
86
+
87
+                }
88
+            }
89
+            return obj;
90
+        }
91
+    }
92
+}

+ 8
- 2
XHWK.Model/Model_Video.cs View File

1
 using System.Collections.Generic;
1
 using System.Collections.Generic;
2
+using System.Runtime.Remoting.Messaging;
2
 
3
 
3
 namespace XHWK.Model
4
 namespace XHWK.Model
4
 {
5
 {
7
     /// </summary>
8
     /// </summary>
8
     public class Model_Video
9
     public class Model_Video
9
     {
10
     {
10
-        private string _videPath;
11
+        private string _videoPath;
11
         private string _thumbnailPath;
12
         private string _thumbnailPath;
12
         private Enum_VideoType _videoType;
13
         private Enum_VideoType _videoType;
13
         private Enum_WKVidetype _wkType;
14
         private Enum_WKVidetype _wkType;
19
         private string _Savefolder;
20
         private string _Savefolder;
20
         private int _Block;
21
         private int _Block;
21
         private int _Uploaded;
22
         private int _Uploaded;
23
+        private long _SliceLen;
22
         /// <summary>
24
         /// <summary>
23
         /// 视频路径
25
         /// 视频路径
24
         /// </summary>
26
         /// </summary>
25
-        public string VidePath { get => _videPath; set => _videPath = value; }
27
+        public string VideoPath { get => _videoPath; set => _videoPath = value; }
26
         /// <summary>
28
         /// <summary>
27
         /// 缩略图路径
29
         /// 缩略图路径
28
         /// </summary>
30
         /// </summary>
67
         /// 当前已上传到第几块
69
         /// 当前已上传到第几块
68
         /// </summary>
70
         /// </summary>
69
         public int Uploaded { get => _Uploaded; set => _Uploaded = value; }
71
         public int Uploaded { get => _Uploaded; set => _Uploaded = value; }
72
+        /// <summary>
73
+        /// 视频每片长度
74
+        /// </summary>
75
+        public long SliceLen { get => _SliceLen; set => _SliceLen = value; }
70
     }
76
     }
71
 
77
 
72
     /// <summary>
78
     /// <summary>

+ 2
- 0
XHWK.WKTool/App.config View File

30
     展示文件:   https://schoolfiletest.xhkjedu.com/-->
30
     展示文件:   https://schoolfiletest.xhkjedu.com/-->
31
     <!--摄像头位置 1.右上 2.左上 3.右下 4.左下-->
31
     <!--摄像头位置 1.右上 2.左上 3.右下 4.左下-->
32
     <add key="CameraPosition" value=""/>
32
     <add key="CameraPosition" value=""/>
33
+    <!--上传每片大小 Mb-->
34
+    <add key="UploadSliceLen" value="1"/>
33
   </appSettings>
35
   </appSettings>
34
 </configuration>
36
 </configuration>

+ 1
- 1
XHWK.WKTool/CountdownWindow.xaml.cs View File

23
         /// <summary>
23
         /// <summary>
24
         /// 计时器
24
         /// 计时器
25
         /// </summary>
25
         /// </summary>
26
-        new System.Timers.Timer timer;
26
+        System.Timers.Timer timer;
27
         int ImgNum = 3;
27
         int ImgNum = 3;
28
         public void Initialize(int changeTime=650)
28
         public void Initialize(int changeTime=650)
29
         {
29
         {

+ 1
- 1
XHWK.WKTool/CreateAMicroLessonWindow.xaml.cs View File

120
                 //APP.W_XHMicroLessonSystemWindow .Topmost = true;
120
                 //APP.W_XHMicroLessonSystemWindow .Topmost = true;
121
             }
121
             }
122
             this.Hide();
122
             this.Hide();
123
-            APP.W_XHMicroLessonSystemWindow.ShowDialog();
123
+            APP.W_XHMicroLessonSystemWindow.Show();
124
           
124
           
125
         }
125
         }
126
         /// <summary>
126
         /// <summary>

+ 93
- 5
XHWK.WKTool/DAL/DAL_Upload.cs View File

1
-using Common.system;
1
+using Common;
2
+using Common.system;
2
 
3
 
3
 using Newtonsoft.Json.Linq;
4
 using Newtonsoft.Json.Linq;
4
 
5
 
5
 using System;
6
 using System;
6
 using System.Collections.Generic;
7
 using System.Collections.Generic;
8
+using System.Collections.Specialized;
9
+using System.IO;
7
 using System.Linq;
10
 using System.Linq;
8
 using System.Text;
11
 using System.Text;
9
 using System.Threading;
12
 using System.Threading;
10
 using System.Threading.Tasks;
13
 using System.Threading.Tasks;
11
 
14
 
15
+using XHWK.Model;
16
+
12
 namespace XHWK.WKTool.DAL
17
 namespace XHWK.WKTool.DAL
13
 {
18
 {
14
     /// <summary>
19
     /// <summary>
37
                 {
42
                 {
38
                     JObject jo = HttpHelper.PostFunction(FileRequestAddress + @"/chunkdb/isexist", @"application/x-www-form-urlencoded", @"md5=" + MD5, "");
43
                     JObject jo = HttpHelper.PostFunction(FileRequestAddress + @"/chunkdb/isexist", @"application/x-www-form-urlencoded", @"md5=" + MD5, "");
39
                     //0成功,1失败
44
                     //0成功,1失败
40
-                    if(jo["code"].ToString()=="0")
45
+                    if (jo["code"].ToString() == "0")
41
                     {
46
                     {
42
                         if (string.IsNullOrWhiteSpace(jo["obj"].ToString()))
47
                         if (string.IsNullOrWhiteSpace(jo["obj"].ToString()))
43
                         {
48
                         {
52
                     }
57
                     }
53
                     else
58
                     else
54
                     {
59
                     {
55
-                        Message=jo["msg"].ToString();
60
+                        Message = jo["msg"].ToString();
56
                         return false;
61
                         return false;
57
                     }
62
                     }
58
                 }
63
                 }
74
         /// <param name="FileCode">文件唯一编号 Guid</param>
79
         /// <param name="FileCode">文件唯一编号 Guid</param>
75
         /// <param name="Message">错误信息</param>
80
         /// <param name="Message">错误信息</param>
76
         /// <returns></returns>
81
         /// <returns></returns>
77
-        public bool ReportFileMerge(string Savefolder,string FileCode, out string Message)
82
+        public bool ReportFileMerge(string Savefolder, string FileCode, out string Message)
78
         {
83
         {
79
             Exception ex = null;
84
             Exception ex = null;
80
             Message = "";//请求重试5次 共5秒
85
             Message = "";//请求重试5次 共5秒
82
             {
87
             {
83
                 try
88
                 try
84
                 {
89
                 {
85
-                    JObject jo = HttpHelper.PostFunction(FileRequestAddress + @"/chunkdb/mergechunk", @"application/x-www-form-urlencoded", @"savefolder=" + Savefolder+ "&identifier="+ FileCode, "");
90
+                    JObject jo = HttpHelper.PostFunction(FileRequestAddress + @"/chunkdb/mergechunk", @"application/x-www-form-urlencoded", @"savefolder=" + Savefolder + "&identifier=" + FileCode, "");
86
                     //0成功,1失败
91
                     //0成功,1失败
87
                     if (jo["code"].ToString() == "0")
92
                     if (jo["code"].ToString() == "0")
88
                     {
93
                     {
105
             LogHelper.WriteErrLog(ErrMessage, ex);
110
             LogHelper.WriteErrLog(ErrMessage, ex);
106
             return false;
111
             return false;
107
         }
112
         }
113
+
114
+        /// <summary>
115
+        /// 上传视频
116
+        /// </summary>
117
+        /// <returns></returns>
118
+        public bool UploadVideo(string VideoGuid, out string ErrMessage)
119
+        {
120
+            ErrMessage = "";
121
+            try
122
+            {
123
+                Model_Video VideoInfo = APP.VideoList.Find(x => x.FileGuid == VideoGuid);
124
+                string UploadUrl = FileRequestAddress + "/chunkdb/upchunk";
125
+                if (VideoInfo.IsUpload)
126
+                {
127
+                    ErrMessage = "视频已上传";
128
+                    return false;
129
+                }
130
+                else
131
+                {
132
+                    if (string.IsNullOrWhiteSpace(VideoInfo.FileMD5))
133
+                    {
134
+                        VideoInfo.FileMD5 = AESHelper.AESEncrypt(FileToolsCommon.ReadBigFileStr(VideoInfo.VideoPath, 1024));
135
+                    }
136
+                    if (IsAllowUploaded(VideoInfo.FileMD5, out ErrMessage))
137
+                    {
138
+                        //视频长度
139
+                        long filelen = FileToolsCommon.GetFileSize(VideoInfo.VideoPath);
140
+                        //每片的长度
141
+                        double UploadSliceLenMB = double.Parse(FileToolsCommon.GetConfigValue("UploadSliceLen"));
142
+                        if (VideoInfo.SliceLen == 0)
143
+                        {
144
+                            VideoInfo.SliceLen = (long)(UploadSliceLenMB * 1024 * 1024);
145
+                            VideoInfo.Block = (int)(filelen / VideoInfo.SliceLen + (filelen % VideoInfo.SliceLen > 0 ? 1 : 0));
146
+                        }
147
+                        //已上传长度
148
+                        long len = VideoInfo.Uploaded * VideoInfo.SliceLen;
149
+                        string fileName = FileToolsCommon.GetFileName(VideoInfo.VideoPath);
150
+                        //分块
151
+                        for (; len + VideoInfo.SliceLen < filelen; VideoInfo.Uploaded++)
152
+                        {
153
+                            len = VideoInfo.Uploaded * VideoInfo.SliceLen;
154
+                            //取指定长度的流
155
+                            byte[] byteArray = FileToolsCommon.ReadBigFileSpecifyLength(VideoInfo.VideoPath, len, 102400);
156
+                            //参数
157
+                            NameValueCollection formFields = new NameValueCollection();
158
+                            formFields.Add("identifier", VideoInfo.FileGuid);
159
+                            formFields.Add("chunkNumber", (VideoInfo.Uploaded + 1).ToString());
160
+                            formFields.Add("filename", fileName);
161
+                            formFields.Add("totalchunk", VideoInfo.Block.ToString());
162
+                            formFields.Add("md5", VideoInfo.FileMD5);
163
+                            JObject jo = HttpHelper.UploadRequestflow(UploadUrl, byteArray, fileName, formFields);
164
+                            //0成功,1失败
165
+                            if (jo["code"].ToString() != "0")
166
+                            {
167
+                                ErrMessage = jo["msg"].ToString();
168
+                                return false;
169
+                            }
170
+                        }
171
+                        //合并文件
172
+                        bool isres = ReportFileMerge(APP.UserInfo.Schoolid.ToString() + "/resource", VideoInfo.FileGuid, out ErrMessage);
173
+                        if (isres)
174
+                        {
175
+                            return true;
176
+                        }
177
+                        else
178
+                        {
179
+                            return false;
180
+                        }
181
+                    }
182
+                    else
183
+                    {
184
+                        ErrMessage = "上传失败:" + ErrMessage;
185
+                        return false;
186
+                    }
187
+                }
188
+
189
+            }
190
+            catch (Exception ex)
191
+            {
192
+                LogHelper.WriteErrLog("【视频上传】(UploadVideo)视频上传失败:" + ex.Message, ex);
193
+            }
194
+            return false;
195
+        }
108
     }
196
     }
109
 }
197
 }

+ 3
- 2
XHWK.WKTool/FileDirectoryWindow.xaml.cs View File

9
 using System.Windows.Input;
9
 using System.Windows.Input;
10
 using System.Windows.Media;
10
 using System.Windows.Media;
11
 using XHWK.Model;
11
 using XHWK.Model;
12
+using XHWK.WKTool.DAL;
12
 
13
 
13
 namespace XHWK.WKTool
14
 namespace XHWK.WKTool
14
 {
15
 {
77
                 pageData.menuList.Add(new FileDirectoryModel()
78
                 pageData.menuList.Add(new FileDirectoryModel()
78
                 {
79
                 {
79
                     SerialNumber = i,
80
                     SerialNumber = i,
80
-                    VideoName = Common.system.FileToolsCommon.GetIOFileName(videoinfo.VidePath),
81
+                    VideoName = Common.system.FileToolsCommon.GetIOFileName(videoinfo.VideoPath),
81
                     VideoDuration = 0,
82
                     VideoDuration = 0,
82
                     VideoSize = videoinfo.VideoSize,
83
                     VideoSize = videoinfo.VideoSize,
83
                     VideoTime = videoinfo.RSTime,
84
                     VideoTime = videoinfo.RSTime,
84
                     IsEnabled = false,
85
                     IsEnabled = false,
85
-                    Path = videoinfo.VidePath,
86
+                    Path = videoinfo.VideoPath,
86
                     Colour = colour,
87
                     Colour = colour,
87
                     Visi = vis,
88
                     Visi = vis,
88
                     Coll=cos,
89
                     Coll=cos,

+ 2
- 2
XHWK.WKTool/ScreenRecordingToolbarWindow.xaml.cs View File

186
                             try
186
                             try
187
                             {
187
                             {
188
                                 FileToolsCommon.DeleteFile(VideoSavePathName);
188
                                 FileToolsCommon.DeleteFile(VideoSavePathName);
189
-                                APP.VideoList.RemoveAll(x => x.VidePath == VideoSavePathName);
189
+                                APP.VideoList.RemoveAll(x => x.VideoPath == VideoSavePathName);
190
                             }
190
                             }
191
                             catch (Exception ex)
191
                             catch (Exception ex)
192
                             {
192
                             {
291
                         FileToolsCommon.DeleteFile(ThumbnailPathName);
291
                         FileToolsCommon.DeleteFile(ThumbnailPathName);
292
                         VideoInfo.VideoSize = FileToolsCommon.GetFileSizeByMB(VideoSavePathName).ToString() + " MB";
292
                         VideoInfo.VideoSize = FileToolsCommon.GetFileSizeByMB(VideoSavePathName).ToString() + " MB";
293
                         VideoInfo.RSTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
293
                         VideoInfo.RSTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
294
-                        VideoInfo.VidePath = VideoSavePathName;
294
+                        VideoInfo.VideoPath = VideoSavePathName;
295
                         VideoInfo.ThumbnailPath = ThumbnailPathName;
295
                         VideoInfo.ThumbnailPath = ThumbnailPathName;
296
                         APP.FFmpeg.GenerateThumbnails(VideoSavePathName, ThumbnailPathName);
296
                         APP.FFmpeg.GenerateThumbnails(VideoSavePathName, ThumbnailPathName);
297
                         VideoInfo.FileGuid = Guid.NewGuid().ToString();
297
                         VideoInfo.FileGuid = Guid.NewGuid().ToString();

+ 1
- 1
XHWK.WKTool/XHMicroLessonSystemWindow.xaml View File

8
         xmlns:local="clr-namespace:XHWK.WKTool"
8
         xmlns:local="clr-namespace:XHWK.WKTool"
9
         mc:Ignorable="d"
9
         mc:Ignorable="d"
10
         Title="XHMicroLessonSystemWindow" Height="1040.8" Width="875" WindowStartupLocation="CenterScreen"
10
         Title="XHMicroLessonSystemWindow" Height="1040.8" Width="875" WindowStartupLocation="CenterScreen"
11
-    WindowStyle="None"    AllowsTransparency="True"  Background="#EFF1F8"
11
+    WindowStyle="None"    AllowsTransparency="True"  Background="#EFF1F8" ShowInTaskbar="True"
12
    >
12
    >
13
     
13
     
14
     <Viewbox>
14
     <Viewbox>

+ 3
- 48
XHWK.WKTool/XHMicroLessonSystemWindow.xaml.cs View File

310
                 Initialize();
310
                 Initialize();
311
             }
311
             }
312
             APP.fileDirectoryWindow.Show();
312
             APP.fileDirectoryWindow.Show();
313
-
314
-            #region 测试上传
315
-            //string path = "E:/临时文件/test.txt";
316
-            //string newpath = "E:/临时文件/test1.txt";
317
-            //string identifier = Guid.NewGuid().ToString();
318
-            //FileToolsCommon.CreateFile(newpath);
319
-            //DAL_Upload DU = new DAL_Upload();
320
-            //string FileRequestAddress = FileToolsCommon.GetConfigValue("FileRequestAddress");
321
-            //string url = FileRequestAddress+"/chunkdb/upchunk";
322
-            ////是否可以上传
323
-            //if (DU.IsAllowUploaded("TestABC", out string ErrMessage))
324
-            //{
325
-            //    long len = 0;
326
-            //    long filelen = 0;
327
-            //    //文件总长度
328
-            //    using (FileStream stream = new FileStream(path, FileMode.Open))
329
-            //    {
330
-            //        filelen = stream.Length;
331
-            //    }
332
-            //    //分块
333
-            //    for (int i = 0; len + 102400 < filelen; i++)
334
-            //    {
335
-            //        len = i * 102400;
336
-            //        //取指定长度的流
337
-            //        byte[] byteArray = FileToolsCommon.ReadBigFileSpecifyLength(path, len, 102400);
338
-            //        //参数
339
-            //        NameValueCollection formFields = new NameValueCollection();
340
-            //        formFields.Add("identifier", identifier);
341
-            //        formFields.Add("chunkNumber", (i + 1).ToString());
342
-            //        formFields.Add("filename", "test.txt");
343
-            //        formFields.Add("totalchunk", "13");
344
-            //        formFields.Add("md5", "TestABC");
345
-            //        HttpHelper.UploadRequestflow(url, byteArray, "test.txt", formFields);
346
-            //    }
347
-            //    //
348
-            //    bool isres=DU.ReportFileMerge(APP.UserInfo.Schoolid.ToString() + "/resource", identifier, out string Message);
349
-            //    if(!isres)
350
-            //    {
351
-            //        System.Windows.MessageBox.Show(Message);
352
-            //    }
353
-            //}
354
-            //else
355
-            //{
356
-            //    System.Windows.MessageBox.Show(ErrMessage);
357
-            //}
358
-            #endregion
359
         }
313
         }
360
         /// <summary>
314
         /// <summary>
361
         /// 关闭事件
315
         /// 关闭事件
1013
             long timestr = Convert.ToInt64(ts.TotalMilliseconds);
967
             long timestr = Convert.ToInt64(ts.TotalMilliseconds);
1014
             return timestr;
968
             return timestr;
1015
         }
969
         }
970
+
1016
         #region 录制窗口
971
         #region 录制窗口
1017
         #region 变量
972
         #region 变量
1018
         /// <summary>
973
         /// <summary>
1140
                             try
1095
                             try
1141
                             {
1096
                             {
1142
                                 FileToolsCommon.DeleteFile(VideoSavePathName);
1097
                                 FileToolsCommon.DeleteFile(VideoSavePathName);
1143
-                                APP.VideoList.RemoveAll(x => x.VidePath == VideoSavePathName);
1098
+                                APP.VideoList.RemoveAll(x => x.VideoPath == VideoSavePathName);
1144
                             }
1099
                             }
1145
                             catch (Exception ex)
1100
                             catch (Exception ex)
1146
                             {
1101
                             {
1320
                         FileToolsCommon.DeleteFile(ThumbnailPathName);
1275
                         FileToolsCommon.DeleteFile(ThumbnailPathName);
1321
                         VideoInfo.VideoSize = FileToolsCommon.GetFileSizeByMB(VideoSavePathName).ToString() + " MB";
1276
                         VideoInfo.VideoSize = FileToolsCommon.GetFileSizeByMB(VideoSavePathName).ToString() + " MB";
1322
                         VideoInfo.RSTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
1277
                         VideoInfo.RSTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
1323
-                        VideoInfo.VidePath = VideoSavePathName;
1278
+                        VideoInfo.VideoPath = VideoSavePathName;
1324
                         VideoInfo.ThumbnailPath = ThumbnailPathName;
1279
                         VideoInfo.ThumbnailPath = ThumbnailPathName;
1325
                         APP.FFmpeg.GenerateThumbnails(VideoSavePathName, ThumbnailPathName);
1280
                         APP.FFmpeg.GenerateThumbnails(VideoSavePathName, ThumbnailPathName);
1326
                         VideoInfo.FileGuid = Guid.NewGuid().ToString();
1281
                         VideoInfo.FileGuid = Guid.NewGuid().ToString();

Loading…
Cancel
Save