1

我一直在玩 Video.js,但在提供的示例中遇到了问题。

在使用 html5 视频元素指定 MP4 (h264) 视频时,会出现一些混淆。

当我使用(绝对)时:

<source src="C:\<filsystempath>\Media\oceans-clip.mp4" type='video/mp4' />

视频显示出来了,没问题。但是当我使用:

<source src="@Url.Content("~/Media/oceans-clip.mp4")" type='video/mp4' />

视频不显示。我会得出结论,使用相对路径是问题,但是当使用像这样的 ogv 视频时:

<source src="@Url.Content("~/Media/oceans-clip.ogv")" type='video/ogg' />

它工作正常。

另一个烦恼 - 当视频用于 Flash 后备时,它可以工作。

我正在使用 ASP.MVC 和 video.js。我正在使用 localhost 进行调试。

完整的视频标签 -

<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 src="@Url.Content("~/Media/oceans-clip.ogv")" type='video/ogg' /> -- Works
<source src="C:\<filesystempath>\oceans-clip.mp4" type='video/mp4' /> -- Works
<source src="@Url.Content("~/Media/oceans-clip.mp4")" type='video/mp4' /> -- Doesn't work
<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />
</video>

问题是:为什么视频会以绝对路径播放而不是相对路径?

4

2 回答 2

2

因为这<source src="@Url.Content("~/Media/oceans-clip.mp4")" type='video/mp4' />会呈现如下内容:

<source src="localhost:8080/Media/oceans-clip.mp4" type='video/mp4' />

在第一种情况下,您正在从驱动器读取文件:

<source src="C:\<filsystempath>\Media\oceans-clip.mp4" type='video/mp4' />
于 2013-08-26T11:17:14.423 回答
0

解决方案非常简单。使用 IIS 快递。不知道它是如何或为什么起作用的,但我认为它与 C:\Users\\Documents\IISExpress\config 中的 applicationhost.config 文件有关。也许 MP4 需要指定 mime 类型才能工作。就像我说的,不确定。希望这对其他人有帮助。

另外,感谢 karaxuna 让我思考。

于 2013-08-26T16:06:00.263 回答