خطوات التطوير:
1. قم بتنزيل FMS http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx وتثبيته وتكوينه.
2. استخدم الفلاش لإنشاء عناصر تحكم لمجموعة فيديو FMS.
3. تقوم صفحة aspx بتضمين عنصر تحكم مجموعة FMS، وتشغيل بيانات المجموعة للتحميل إلى خادم FMS، وتعديل عنوان تخزين ملف الفيديو لقاعدة البيانات.
4. تتضمن الصفحة التحكم في تشغيل الفلاش وتضيف رمز دفق معالجة FLV:
1using System؛
2باستخدام System.IO؛
3باستخدام System.Web؛
4
5
6/**//// <الملخص>
7/// وصف ملخص لـ FLVStreaming
8/// </الملخص>
9 فئة عامة FLVStreaming: IHttpHandler
10 {
11 بايت ثابت خاص للقراءة فقط[] _flvheader = HexToByte("464C5601010000000900000009"); //"FLVx1x1 x9 x9";
12
13 FLVStreaming () العامة
14 {
15}
16
17 عملية طلب الفراغ العام (سياق HttpContext)
18 {
19 محاولة
20 {
21 نقطة البيع.
22 طولًا صحيحًا؛
ثلاثة وعشرين
24 // التحقق من معلمة البداية إذا كانت موجودة
25 اسم ملف سلسلة = Path.GetFileName(context.Request.FilePath);
26
27 باستخدام (FileStream fs = new FileStream(context.Server.MapPath(filename), FileMode.Open, FileAccess.Read, FileShare.Read))
28 {
29 سلسلة qs = context.Request.Params["start"];
30
31 إذا (string.IsNullOrEmpty(qs))
32 {
33 نقطة = 0؛
34 length = Convert.ToInt32(fs.Length);
35}
36 آخر
37 {
38 نقطة البيع = Convert.ToInt32(qs);
39 length = Convert.ToInt32(fs.Length - pos) + _flvheader.Length;
40}
41
42 // أضف عناصر رأس HTTP: ذاكرة التخزين المؤقت ونوع المحتوى والطول
43 context.Response.Cache.SetCacheability(HttpCacheability.Public);
44 context.Response.Cache.SetLastModified(DateTime.Now);
45
46 context.Response.AppendHeader("Content-Type", "video/x-flv");
47 context.Response.AppendHeader("Content-Length"، length.ToString());
48
49 //إلحاق رأس FLV عند إرسال ملف جزئي
50 إذا (نقطة البيع > 0)
51 {
52 context.Response.OutputStream.Write(_flvheader, 0, _flvheader.Length);
53 fs.Position = pos;
54 }
55
56 // قراءة المخزن المؤقت وكتابة الدفق إلى دفق الاستجابة
57 const int buffersize = 16384;
58 بايت[] المخزن المؤقت = بايت جديد[حجم المخزن المؤقت];
59
60 int count = fs.Read(buffer, 0, buffersize);
61 بينما (العد > 0)
62 {
63 إذا (context.Response.IsClientConnected)
64 {
65 سياق.Response.OutputStream.Write(buffer, 0, count);
66 count = fs.Read(buffer, 0, buffersize);
67 }
68 آخر
69 {
70 عدد = -1؛
71 }
72 }
73}
74}
75 صيدًا (استثناء على سبيل المثال)
76 {
77 System.Diagnostics.Debug.WriteLine(ex.ToString());
78 }
79 }
80
81 منطقي عام قابل لإعادة الاستخدام
82 {
83 الحصول على { العودة صحيح }
84}
85
86 بايت ثابت خاص [] HexToByte (سلسلة سداسية)
87 {
88 بايت[] returnBytes = new byte[hexString.Length / 2];
89 لـ (int i = 0; i < returnBytes.Length; i++)
90 returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
91 إرجاع بايت بايت؛
92 }
93
94}
95 قم بتعديل ملف التكوين وتشغيل الصفحة لاستدعاء الفيديو. سرعة التشغيل جيدة جدًا. على الرغم من أن هذا أمر غير مبالغ فيه، إلا أن فكرة استخدام Asp.net لتطوير موقع ويب للفيديو قد تم طرحها. اذا كنت مهتما يرجى الاتصال بي.
http://www.cnblogs.com/xiucai/archive/2007/06/13/782001.html