網頁內嵌Media Player播放器很簡單,以下代碼即可完成一個簡單的播放器:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><title>音樂播放器÷</title></head><body><object height="200" type="video/x-ms-wmv" width="200"> <param name="filename" value="C:\Users\SkyD\Music\Groove Coverage\far away from home .mp3" /> <param name="autostart" value="true" /> <param name="loop" value="true"/></object></body></html>
運行效果:
如何讓播放器可以播放多個音頻/視頻檔案?
沒法直接在HTML中添加多重filename參數實現多檔案播放,可行的方法是:自行建立播放清單,然後將filename參數指向播放清單的位置。
以下C#代碼用於建立一個Windows Media Player所支援的播放清單檔案:
public static void 產生ASX音樂播放清單檔案(string 儲存路徑, params string[] 檔案路徑列表){ StringBuilder s = new StringBuilder(); foreach (var f in 檔案路徑列表) { s.AppendLine(string.Format(@"<Entry><Ref href = ""{0}""/></Entry>",f)); } StreamWriter sw = new StreamWriter(儲存路徑, false, Encoding.Default); sw.Write(string.Format(@"<Asx Version = ""3.0"" >{0}</Asx>",s)); sw.Close();}
需注意的是:
編碼應為Default(簡體中文系統中Default等同於GB2312),UTF-8、Unicode之類的都不行,ASCII可以,但不支援中文路徑。
音樂檔案名稱可以是本地路徑或網址,絕對或相對路徑都可以,如果是本地路徑就不需要進行Url編碼。
儲存的播放清單檔案名稱最好副檔名設為.asx,否則有可能播放器不認。
如何?隨機(亂序)播放歌曲?
沒法在HTML中通過參數指定亂序播允許存取為,只能通過變通方法實現:將播放清單複製N份,並分別打亂順序,組合為一個新的大播放清單,使得播放隨機化。
這裡提供一個簡單的擴充方法用於打亂集合:
static Random R = new Random();
/// <summary>/// 返回經隨機排序後的集合/// </summary>public static IEnumerable<T> Random<T>(this IEnumerable<T> o){ var c = o.Count(); var l = new List<int>(); for (int i = 0; i < c; i++) { l.Add(i); } while (l.Count > 0) { var i = l[R.Next(l.Count)]; l.Remove(i); yield return o.ElementAt(i); }}
使用時只需將N個經此方法打亂過的原始播放清單組合為新的播放清單輸出即可。
在傳統型程式中通過此方法變通實現背景音樂播放
這應該是傳統型程式中播放音樂最簡單的辦法吧,雖然有濃鬱的山寨風格,嘿嘿。
只需建立一個WebBrowser控制項,將其DocumentText屬性賦予播放器HTML代碼即可。
如下C#代碼即可實現背景音樂播放:
var path = @"C:\123.asx";var b = new WebBrowser();b.DocumentText = string.Format(@"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html xmlns=""http://www.w3.org/1999/xhtml""><head><meta content=""text/html; charset=utf-8"" http-equiv=""Content-Type"" /><title>音樂播放器</title></head><body><object height=""200"" type=""video/x-ms-wmv"" width=""200""><param name=""filename"" value=""{0}"" /><param name=""autostart"" value=""true"" /><param name=""loop"" value=""true""/></object></body></html>",path);
下載
本文的XPS版本:http://www.uushare.com/user/icesee/file/3169359