2017-02-16 3 views
0

私はASPXファイルに次のコードを使用します。コードでビデオタグのソースを設定するにはどうすればよいですか?

<video width="320" height="240" autoplay="autoplay"> 
    <source id="videoSrc" runat="server" type="video/mp4"/> 
    Your browser does not support the video tag. 
</video> 

が、私は後ろのコードでこのコードを使用します。

protected void Page_Load(object sender, EventArgs e) 
{ 
    videoSrc.Src= "UploadMovies/"+Request.QueryString["id"]+"/high.mp4"; 
} 

と私は<source>に、このエラーを取得するmyPage.aspx?id=1としての私のページを呼び出します。

The base class includes the field 'videoSrc', but its type (System.Web.UI.HtmlControls.HtmlSource) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlGenericControl).

答えて

1

ここで行うことはほとんどありません。

まず、<source>を完全に取り除き、src属性を使用します。あなたはvideoサーバ側の制御にする必要があり、それはエラーが発生することはありません。

<video width="320" height="240" autoplay="autoplay" id="video" runat="server"> 
</video> 

video.Attributes["src"] = "UploadMovies/"+Request.QueryString["id"]+"/high.mp4"; 

もう一つは、あなたのビデオのリンクを与える機能の背後にあるコードを持つことです。

<video width="320" height="240" autoplay="autoplay"> 
    <source type="video/mp4" src='<%= GetVideoLink() %>'/> 
</video> 

protected string GetVideoLink() 
{ 
    return "UploadMovies/"+Request.QueryString["id"]+"/high.mp4"; 
} 

ここでパラメータを使用して、フォールバックをサポートするために複数の<source>タグを使用することもできます。

あなたが見ているエラーに関して、なぜそれが起こっているのかは分かりません。 HtmlSourceがsourceタグのコントロールの正しいタイプだとすると、なぜASP.NETがそれをジェネリックなhtmlコントロールとして扱うのかは不明です。あなたはthis workaroundを試すことができます。

関連する問題