Entwicklungsschritte:
1. Laden Sie FMS http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx herunter, installieren und konfigurieren Sie es.
2. Verwenden Sie Flash, um Steuerelemente für die FMS-Videosammlung zu erstellen.
3. Die ASPX-Seite bettet die FMS-Sammlungssteuerung ein, führt die Sammlungsdaten zum Hochladen auf den FMS-Server aus und ändert die Videodatei-Speicheradresse der Datenbank.
4. Die Seite bettet die Flash-Wiedergabesteuerung ein und fügt den FLV-Verarbeitungs-Stream-Code hinzu:
1using System;
2mit System.IO;
3mit System.Web;
4
5
6/**//// <Zusammenfassung>
7/// Zusammenfassende Beschreibung für FLVStreaming
8/// </summary>
9öffentliche Klasse FLVStreaming: IHttpHandler
10{
11 privates statisches schreibgeschütztes Byte[] _flvheader = HexToByte("464C5601010000000900000009"); //"FLVx1x1 x9 x9"
12
13 öffentliches FLVStreaming()
14 {
15}
16
17 public void ProcessRequest(HttpContext context)
18 {
19 Versuche
20 {
21 int pos;
22 Zoll Länge;
dreiundzwanzig
24 // Startparameter prüfen, falls vorhanden
25 string filename = Path.GetFileName(context.Request.FilePath);
26
27 using (FileStream fs = new FileStream(context.Server.MapPath(filename), FileMode.Open, FileAccess.Read, FileShare.Read))
28 {
29 string qs = context.Request.Params["start"];
30
31 if (string.IsNullOrEmpty(qs))
32 {
33 Pos. = 0;
34 length = Convert.ToInt32(fs.Length);
35}
36 sonst
37 {
38 pos = Convert.ToInt32(qs);
39 length = Convert.ToInt32(fs.Length - pos) + _flvheader.Length;
40}
41
42 // HTTP-Header-Inhalte hinzufügen: Cache, Inhaltstyp und Länge
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-Header anhängen, wenn Teildatei gesendet wird
50 wenn (pos > 0)
51 {
52 context.Response.OutputStream.Write(_flvheader, 0, _flvheader.Length);
53 fs.Position = pos;
54 }
55
56 // Puffer lesen und Stream in den Antwortstream schreiben
57 const int buffersize = 16384;
58 byte[] buffer = new byte[buffersize];
59
60 int count = fs.Read(buffer, 0, buffersize);
61 while (Anzahl > 0)
62 {
63 if (context.Response.IsClientConnected)
64 {
65 context.Response.OutputStream.Write(buffer, 0, count);
66 count = fs.Read(buffer, 0, buffersize);
67 }
68 sonst
69 {
70 Zählung = -1;
71 }
72 }
73}
74}
75 Fang (Ausnahme ex)
76 {
77 System.Diagnostics.Debug.WriteLine(ex.ToString());
78 }
79 }
80
81 public boolIsReusable
82 {
83 get { return true }
84}
85
86 privates statisches Byte[] HexToByte(string hexString)
87 {
88 byte[] returnBytes = neues byte[hexString.Length / 2];
89 for (int i = 0; i < returnBytes.Length; i++)
90 returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
91 return returnBytes;
92 }
93
94}
95 Ändern Sie die Konfigurationsdatei und führen Sie die Seite aus, um das Video aufzurufen. Die Wiedergabegeschwindigkeit ist sehr gut. Obwohl es eine Untertreibung ist, wurde die Idee, Asp.net für die Entwicklung einer Video-Website zu verwenden, aufgegriffen. Bei Interesse kontaktieren Sie mich bitte.
http://www.cnblogs.com/xiucai/archive/2007/06/13/782001.html