Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何直接显示最近上传的视频?_C#_Jquery_Asp.net_File Upload_Video.js - Fatal编程技术网

C# 如何直接显示最近上传的视频?

C# 如何直接显示最近上传的视频?,c#,jquery,asp.net,file-upload,video.js,C#,Jquery,Asp.net,File Upload,Video.js,我不想创建一个概念证明,向用户展示如果他们以.MP4和OGG格式上传相同的视频,生成的视频标签(使用videojs)将是跨平台的 我已经成功地使用designer创建了一个文件上传器,它将文件上传到解决方案中的文件夹“files”中,最高可达512mb,但我想知道如何使用生成的视频标记更新网页 这是我想更改的标签: <video id="example_video_1" class="video-js vjs-default-skin" controls preload="

我不想创建一个概念证明,向用户展示如果他们以.MP4和OGG格式上传相同的视频,生成的视频标签(使用videojs)将是跨平台的

我已经成功地使用designer创建了一个文件上传器,它将文件上传到解决方案中的文件夹“files”中,最高可达512mb,但我想知道如何使用生成的视频标记更新网页

这是我想更改的标签:

<video id="example_video_1" class="video-js vjs-default-skin"  
      controls preload="auto" width="640" height="264"  
      poster="http://video-js.zencoder.com/oceans-clip.png"  
      data-setup='{"example_option":true}'>  
   <source id="mp4" src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />  
   <source id="webm" src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />  
   <source id="ogg" src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />  
</video>
编辑:

我现在几乎有了解决办法。不知何故,它没有找到正确的路径。我创建的解决方案:

<script type="text/javascript">
    var _strSource = '<ASP:LITERAL runat="server" id="litSource" />';
    window.onload = function ()
    {
        if ( _strSource != "" ) {
            alert( _strSource );
            var video = document.getElementById( 'objVideo' );
            var sources = video.getElementsByTagName( 'source' );
            alert( sources[0].src );
            sources[0].src = _strSource;
            video.load();
            video.play();
        }
    }
</script>
我还在我的web.config中添加了以下内容:

<staticContent>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
  <mimeMap fileExtension=".webm" mimeType="video/webm" />
  <mimeMap fileExtension=".m4v" mimeType="video/m4v" />
</staticContent>


现在它将路径更改为(在我的示例中)C:\Projects\FileUploadTest\FileUploadTest\Files\c4b3ae2189ea.ogg。这是文件上载到的实际路径,但浏览器无法到达此路径。有人知道如何做到这一点吗?

这是一种添加文字的简单方法

<video id="example_video_1" class="video-js vjs-default-skin"  controls preload="auto" width="640" height="264" poster="http://video-js.zencoder.com/oceans-clip.png" data-setup='{"example_option":true}'>  
    <asp:Literal ID="ltSources" runat="server"></asp:Literal>
</video>

在你的按钮事件中

    protected void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        string mp4Url = "http://video-js.zencoder.com/oceans-clip.mp4";
        string webmUrl = "http://video-js.zencoder.com/oceans-clip.webm";
        string oggUrl = "http://video-js.zencoder.com/oceans-clip.ogv";

        sb.AppendFormat("<source id=\"mp4\" src=\"{0}\" type='video/mp4' />", mp4Url);
        sb.AppendFormat("<source id=\"webm\" src=\"{0}\" type='video/webm' />", webmUrl);
        sb.AppendFormat("<source id=\"ogg\" src=\"{0}\" type='video/ogg' />", oggUrl);

        ltSources.Text = sb.ToString();
    }
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
StringBuilder sb=新的StringBuilder();
字符串mp4Url=”http://video-js.zencoder.com/oceans-clip.mp4";
字符串webmUrl=”http://video-js.zencoder.com/oceans-clip.webm";
字符串oggUrl=”http://video-js.zencoder.com/oceans-clip.ogv";
sb.AppendFormat(“,mp4Url);
sb.附录格式(“,webmUrl);
sb.AppendFormat(“,oggUrl”);
ltSources.Text=sb.ToString();
}

最好的方法是使用它来创建一个用户控件

你需要创建一个可以通过浏览器访问的url,例如,如果你的文件被上传到
c:\www\mysite\uploadfolder
,你就必须创建这个url
http://mysite/uploadfolder/movieFileName.ogg

显然,对于闪存回退,您不能。不过,它在诸如Chrome之类的浏览器中也能工作。是时候在所有浏览器中弃用Flash了;)

谢谢你的回复。我试过你的解决办法,但没能奏效。首先,我想在上传视频文件后可能需要调用一些videojs函数,但后来,在检查元素后,我发现没有任何变化。我遗漏了什么吗?url不是我的问题,我用正确的url填充了它。问题在于生成的videojs对象没有得到更新。我认为缓存的是flash回退。即使我将浏览器设置为不缓存任何内容,它似乎仍然会这样做。关闭浏览器并重新打开浏览器是解决办法,但有人知道我是否可以重置闪存缓存吗?注意:它在Chrome上可以工作(使用Chrome,您不会得到闪存回退)
<video id="example_video_1" class="video-js vjs-default-skin"  controls preload="auto" width="640" height="264" poster="http://video-js.zencoder.com/oceans-clip.png" data-setup='{"example_option":true}'>  
    <asp:Literal ID="ltSources" runat="server"></asp:Literal>
</video>
    protected void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        string mp4Url = "http://video-js.zencoder.com/oceans-clip.mp4";
        string webmUrl = "http://video-js.zencoder.com/oceans-clip.webm";
        string oggUrl = "http://video-js.zencoder.com/oceans-clip.ogv";

        sb.AppendFormat("<source id=\"mp4\" src=\"{0}\" type='video/mp4' />", mp4Url);
        sb.AppendFormat("<source id=\"webm\" src=\"{0}\" type='video/webm' />", webmUrl);
        sb.AppendFormat("<source id=\"ogg\" src=\"{0}\" type='video/ogg' />", oggUrl);

        ltSources.Text = sb.ToString();
    }