1. ホーム
  2. internet-explorer

[解決済み] Html5: ビデオファイルが見つかりません

2022-02-18 17:13:17

質問

他の投稿を見たり、様々な解決策を試しましたが、私にはどれもうまくいきません。

動画ファイルは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>

ジャバスクリプト

  $(".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は他のサイトからのabosulte urlsを好まないようだ。 ここで

を使用してカスタム属性を設定しようとしました。 この人の提案

しかし、私はまだ同じエラー(html5:ビデオファイルが見つかりません)が表示されます。

どうすればいいですか?

エラーは、URLやflowplayerではありませんでした。AWSにデータを保存する方法が原因でした。動画をアップロードする際に、コンテンツの種類を指定していなかったのです。クロームは十分に賢く、フラッシュでは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);
}