如何解决在asp.net中播放视频问题

时间:2013-08-03 16:50:46

标签: asp.net c#-4.0 video repeater

Helli Guys!

我在网络视频播放器中基于运行时视频路径播放视频时遇到问题。有一个ASP代码:

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<video src='<%# GetVideoPlayUrl(Eval("id")) %>' width="900" height="400" 
 controls="" preload=""></video>
</ItemTemplate>
</asp:Repeater>

我在数据库中有一个视频路径,保存在数据库中,如~\StoreVideo\VQOFY.mp4

protected string GetVideoPlayUrl(object Id)
{
        int id = Convert.ToInt32(Id);
        string ret = "";
        ret = "" + VideoUploads.GetVideoPath(id) + "";
        return ret; I'm return value `~\StoreVideo\VQOFY.mp4`
}

视频未在播放器中上传我也试过了

protected string GetVideoPlayUrl(object Id)
{
        int id = Convert.ToInt32(Id);
        string ret = "";
        ret = "" + VideoUploads.GetVideoPath(id).Replace("~\\","").Replace("\\","/") + "";
        return ret; I'm return value `StoreVideo/VQOFY.mp4`
}

仍然无法正常工作我不知道我在哪里做错了我真的需要在这个问题上提供帮助。知道我在这里做的错误是什么。请用我的代码纠正我错误的地方。一些伙伴用它来解决我的问题。

谢谢

1 个答案:

答案 0 :(得分:0)

以〜/开头的URL应该在客户端使用之前“解析”(<video>元素是客户端HTML元素,它不知道服务器上的ASP.NET)。在src属性中尝试以下代码:

<%# ResolveUrl(GetVideoPlayUrl(Eval("id"))) %>

如果您从"~/videos/some-video.mp4"方法返回GetVideoPlayUrl(id),那么对ResolveUrl()的调用将“翻译”,可能是"../../videos/some-video.mp4"或者"videos/some-video.mp4" }。这完全取决于当前页面相对于文件位置的位置。

您应该在最终HTML中检查从ASPX页面到视频文件的(相对)路径现在是否正确。