我要求用户上传不同格式的视频,其中包括(.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);
我遇到以下问题
请帮帮我。
答案 0 :(得分:0)
您可以使用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);