在我的网站上显示存储在共享文件夹中的多种格式的视频



我要求用户上传不同格式的视频,包括(.mp4,.flv,.mov,.wmv,.avi,.mp3(,我们需要在一个页面中显示所有不同类型的视频。我正在使用html5视频标签动态显示视频。

以下代码用于显示视频

string contentType = "", extension = "";
if (dtrow["extension"].ToString() == ".mp4")
{
contentType = "data:video/mp4;base64,";
extension = dtrow["extension"].ToString().Replace(".", "");
}
if (dtrow["extension"].ToString() == ".avi")
{
contentType = "data:video/avi;base64,";
extension = dtrow["extension"].ToString().Replace(".", "");
}
if (dtrow["extension"].ToString() == ".flv")
{
contentType = "data:video/flv;base64,";
extension = dtrow["extension"].ToString().Replace(".", "");
}

HtmlGenericControl fileDiv = new HtmlGenericControl("div");                               
fileDiv.ID = "fileDivVideo" + i + j;
fileDiv.Attributes.Add("Class", "row-fluid data-fields noPrint");
fileDiv.Attributes.Add("Style", "margin-top:20px;margin-bottom:20px");
HtmlGenericControl Video = new HtmlGenericControl("Video");
Video.ID = "Video" + i + j;
Video.InnerText = dtrow["Name"].ToString();
byte[] bytes = System.IO.File.ReadAllBytes(dtrow["videoPah"].ToString());
string base64String = contentType + Convert.ToBase64String(bytes, 0, 
bytes.Length);
Video.Attributes.Add("src", base64String);
Video.Attributes.Add("style", "height:300px;width:100%");
Video.Attributes.Add("type", "video/" + extension);
Video.Attributes.Add("controls", "controls");
fileDiv.Controls.Add(Video);
DocsDiv.Controls.Add(fileDiv);

我有以下问题

  1. 仅显示MP4视频,并显示剩余空白区域。
  2. 当需要显示更多视频时,页面加载需要花费大量时间。
  3. 我可以直接显示来自路径(共享路径而不是来自应用程序目录(的文件,而不考虑将视频读取为字节。

请帮助我。

您可以使用 html5 视频的默认方式,而不是使用视频文件的字节数组。替换代码的这一部分:

byte[] bytes = System.IO.File.ReadAllBytes(dtrow["videoPah"].ToString());
string base64String = contentType + Convert.ToBase64String(bytes, 0, 
bytes.Length);
Video.Attributes.Add("src", base64String);

对此:

HtmlGenericControl source = new HtmlGenericControl("source");
source.Attributes.Add("src", THE_FILE_ADDRESS);
source.Attributes.Add("type", "video/" + VIDEO_TYPE);
Video.Controls.Add(source);

最新更新