開発手順:
1. FMS http://blogs.agidotnet.org/kfra/archive/2006/10/04/50003.aspxをダウンロードし、インストールして構成します。
2.フラッシュを使用して、FMS ビデオ コレクションのコントロールを作成します。
3. aspx ページには FMS コレクション コントロールが埋め込まれ、収集データを実行して FMS サーバーにアップロードし、データベースのビデオ ファイル ストレージ アドレスを変更します。
4.このページには Flash 再生コントロールが埋め込まれ、FLV 処理ストリーム コードが追加されます
。1 システムを使用。
2System.IO を使用します。
3System.Web を使用します。
4
5
6/**//// <概要>
7/// FLVStreaming の概要説明
8/// </要約>
9パブリック クラス FLVStreaming : IHttpHandler
10{
11 private static readonly byte[] _flvheader = HexToByte("464C5601010000000900000009"); //"FLVx1x1 x9 x9"
12
13 パブリック FLVStreaming()
14 {
15}
16
17 public void ProcessRequest(HttpContext コンテキスト)
18 {
19 トライ
20 {
21 int pos;
22 int の長さ。
23
24 // 開始パラメータが存在する場合はチェックします
25 文字列ファイル名 = Path.GetFileName(context.Request.FilePath);
26
27 using (FileStream fs = new FileStream(context.Server.MapPath(ファイル名), FileMode.Open, FileAccess.Read, FileShare.Read))
28 {
29 文字列 qs = context.Request.Params["start"];
30
31 if (string.IsNullOrEmpty(qs))
32 {
33 位 = 0;
34 長さ = Convert.ToInt32(fs.Length);
35}
36 その他
37 {
38 pos = Convert.ToInt32(qs);
39 長さ = 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 if (位置 > 0)
51 {
52 context.Response.OutputStream.Write(_flvheader, 0, _flvheader.Length);
53 fs.位置 = 位置;
54 }
55
56 // バッファを読み取り、ストリームを応答ストリームに書き込みます
57 const int バッファサイズ = 16384;
58 byte[] バッファ = 新しいバイト[バッファサイズ];
59
60 int count = fs.Read(buffer, 0,buffersize);
61 その間 (カウント > 0)
62 {
63 if (context.Response.IsClientConnected)
64 {
65 context.Response.OutputStream.Write(バッファ, 0, カウント);
66 カウント = fs.Read(バッファ, 0, バッファサイズ);
67 }
68 その他
69 {
70 カウント = -1;
71 }
72 }
73}
74}
75 キャッチ (例外例)
76 {
77 System.Diagnostics.Debug.WriteLine(ex.ToString());
78 }
79 }
80
81 パブリック ブール再利用可能
82 {
83 取得 { true を返す }
84}
85
86 プライベート静的バイト[] HexToByte(string hexString)
87 {
88 byte[] returnBytes = 新しいバイト[hexString.Length / 2];
89 for (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 を使用してビデオ Web サイトを開発するというアイデアが出されています。ご興味がございましたら、私までご連絡ください。
http://www.cnblogs.com/xiucai/archive/2007/06/13/782001.html