2013-08-26 119 views
0

这是一个奇怪的,与我一起裸露。HTML5视频路径混淆

我一直在玩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' /> 

它工作正常。

还有一个烦恼 - 当视频用于闪回时,它可以工作。

我正在使用ASP.MVC和video.js。我正在使用本地主机进行调试。

全视频标签 -

<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> 

的问题是 - 为什么会在视频播放绝对路径,但不是一个相对?

谢谢:)

回答

1

因为这<source src="@Url.Content("~/Media/oceans-clip.mp4")" type='video/mp4' /> renderes类似:

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

而在第一种情况下,你是从驱动器中读取文件:

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

那么为什么ogv会以相同的方式完成呢? – user2008963

+0

我会得出结论,使用相对路径是问题,但使用像这样的ogv视频时: 它工作正常。 – user2008963

+0

@ user2008963' \ Media \ oceans-clip.mp4”type ='video/mp4'/>'这会从客户端计算机读取文件!这从服务器读取:'' – karaxuna

0

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

此外,信贷卡拉克纳让我觉得。