1

大家好!

我在网络视频播放器的运行时播放基于视频路径的视频时遇到问题。有一个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`
}

仍然无法正常工作我不知道我在哪里做错了我真的需要在这个问题上的帮助。知道我在这里做错了什么。请用我的代码纠正我的错误。希望有朋友可以为我提供解决方案。

谢谢

4

1 回答 1

0

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

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

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

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

于 2013-08-04T07:57:28.503 回答