2

我看过其他帖子并尝试了不同的解决方案,但没有一个对我有用。

视频文件在 Chrome 中对我来说可以正常播放,但出现错误

html5:找不到文件

在 IE10 和 FF 中

最初我只有以下代码

<div class="flowplayer">
    <video>
         <source class="video-source" type="video/mp4" src="@Model.VideoURL" />
    </video>
</div>

然后我根据这个更新了代码

<div class="flowplayer">
    <video>
        <!-- if Firefox -->  
        <source src="@Model.VideoURL" type="video/ogg" />  
        <!-- if Safari/Chrome-->  
        <source src="@Model.VideoURL" type="video/mp4" />  
        <!-- If the browser doesn't understand the <video> element, then reference a Flash file. You could also write something like "Use a Better Browser!" if you're feeling nasty. (Better to use a Flash file though.) -->
        <embed src="@Model.VideoURL" type="application/x-shockwave-flash" width="1024" height="798" allowscriptaccess="always" allowfullscreen="true"></embed> 
    </video>
</div>

我正在从 AWS 中提取我的视频,视频 url 看起来像这样

 https://myurl.cloudfront.net/MyGuid

更新

我根据这个文档更改了我的代码

HTML

<div class="player" data-engine="flash">
   <video preload="none">
      <source type="video/ogg" src="@Model.VideoURL">
      <source type="video/webm" src="@Model.VideoURL">
      <source type="video/mp4" src="@Model.VideoURL">
   </video>
</div>

Javascript

  $(".player").flowplayer({ swf: "/Content/swf/flowplayer.swf" });

这在 IE10 和 Chomre 中运行良好,但在 FF 中我得到了错误

html5: Video file not found
'https://myurl.cloudfront.net/myGuid' 
//this is the correct url and the one that is located in @Model.VideoURL

更新 2

我猜 Firefox 不喜欢这里其他网站的绝对网址

我尝试使用这些人的建议设置自定义属性

但我仍然收到同样的错误(html5:找不到视频文件)

4

1 回答 1

3

错误不是 url 或 flowplayer。这就是我在 AWS 中存储数据的方式。我在上传视频时没有指定内容类型。Chrome 足够聪明,可以解决这个问题,并且使用 Flash IE 也是如此,但 FF 从来没有。

新文件上传代码

using (AmazonS3Client client = new AmazonS3Client())
{
     var bucketObject = new PutObjectRequest
     {
          BucketName = fileStorageProvider.BucketName,
          Key = awsFileName,
          ContentType = "video/mp4", //new line of code
          CannedACL = S3CannedACL.PublicRead
     };

     bucketObject.WithInputStream(file.InputStream);
     client.PutObject(bucketObject);
}
于 2013-09-05T18:08:35.593 回答