#c# #.net #html5-video
#c# #.net #html5-video
Вопрос:
Мне интересно, есть ли способ легко изменить src в теге видео в HTML5 из codebehind?
мое решение сейчас состоит в том, чтобы использовать разные WebUserControl и помещать их в заполнитель при нажатии на их кнопку, но это быстро приводит к большому количеству элементов управления.
Должен быть способ получше.
может быть, например, разместить ярлык, какую-либо привязку в src
Ответ №1:
К любому тегу могут быть добавлены атрибуты в коде, если вы добавляете runat =»server», так что да, есть.
на странице .aspx:
<video id="videoTag" runat="server" />
код, лежащий в основе:
videoTag.Attributes["src"] = "bob";
В качестве альтернативы вы можете написать свой собственный webcontrol. Это требует дополнительной работы и понимания asp.net , но это того стоит, если вы собираетесь часто этим пользоваться.
И если вы используете ASP.Net MVC, они уже выпустили поддержку HTML5 в ASP.Net MVC 3, насколько я понимаю.
Ответ №2:
решил проблему, разместив это на странице aspx
<asp:PlaceHolder ID="VidModule" runat="server"></asp:PlaceHolder>
и это в коде за
//Video relevant int's
int width {get; set;}
int height { get; set; }
//Video relevant text's
string overskrift { get; set; }
string poster { get; set; }
string titleimg { get; set; }
string ogv { get; set; }
string mp4 { get; set; }
string webm { get; set; }
string reso { get; set; }
string res { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
//low 240i resolution player LowD
protected void low240i_Click(object sender, EventArgs e)
{
height = 480;
width = 640;
reso = "240i";
if (reso == "240i")
res = "240i/";
else if (reso == "240p")
res = "240p/";
else if (reso == "480p")
res = "480p/";
else if (reso == "720p")
res = "720p/";
int Data = Convert.ToInt32(Request.QueryString["id"]);
VideoDataContext db = new VideoDataContext();
var fetch = from list in db.VideoDBs
where
list.VidID == Data
select list;
foreach (var list in fetch)
{
overskrift = """ list.Name """;
poster = """ list.IMGAddr """;
titleimg = """ list.IMGAddr """;
if (list.mp4 == true)
mp4 = """ "../Movies/Mov/" res list.VIDAddr ".mp4" """;
else
mp4 = null;
if (list.ogv == true)
ogv = """ "../Movies/Mov/" res list.VIDAddr ".ogv" """;
else
ogv = null;
if (list.webm == true)
webm = """ "../Movies/Mov/" res list.VIDAddr ".webm" """;
else
webm = null;
}
Panel1.Controls.Add(new LiteralControl("<div class=player ><br />"));
Panel1.Controls.Add(new LiteralControl("<h3>" overskrift " in " reso "</h3><br /><br />"));
Panel1.Controls.Add(new LiteralControl("<video controls=controls id=video width=" """ width """ " height=" """ height """ " poster=" poster " preload=auto >"));
Panel1.Controls.Add(new LiteralControl("<source src=" mp4 " type="video/mp4; codecs=avc1.42E01E, mp4a.40.2" title=" titleimg " />"));
Panel1.Controls.Add(new LiteralControl("<source src=" webm " type="video/webm; codecs=vp8, vorbis" title=" titleimg " />"));
Panel1.Controls.Add(new LiteralControl("<source src=" ogv " type="video/ogg; codecs=theora, vorbis" title=" titleimg " />"));
Panel1.Controls.Add(new LiteralControl("Your browser does not support the video tag."));
Panel1.Controls.Add(new LiteralControl("</video></div>"));
}