web-dev-qa-db-ja.com

Firefoxで<audio>のJavaScriptコントロールが機能せず、Chromeで機能する

<audio id="audioMusic" loop="loop">
  <source src="/Music/behind_you.ogg" type="audio/ogg" />
  <source src="/Music/behind_you.mp3" type="audio/mp3" /> 
</audio>
<script type="text/javascript">
   var a = document.getElementById("audioMusic");
   a.play();
</script>

問題/質問:これは、JavaScriptを介してオーディオを制御する他の無数の方法とともに、Chromeで正常に機能し、FirefoxまたはIEでは機能しません。どうして?どのように変更できますか?

ちなみに、はい、私はautoplay属性を使用できることを知っています。JavaScriptを使用してオンとオフを切り替えたり、音量を調整できるようにする必要があるため、探しているものではありません。はい、私はバックグラウンドミュージックが迷惑であることを知っています。

3
broccoli_soup

HTTPデバッガーまたはHTTPモニター(Firebugの「Net」パネル、または他のブラウザーの同様のツールなど)でリクエストを調べると、.oggファイルへのリクエストが返されます404 errorファイルが存在するという事実にもかかわらず

理由は-IIS/IIS ExpressおよびVisual Studioの組み込みの開発Webサーバー(Cassini) 静的サービスを提供しないファイル拡張子が不明な場合はファイル (セキュリティ上の理由から意図的に行われます)。

WebサーバーがIIS 7.xまたはIIS Expressの場合(Windows Vista/7を使用している場合は簡単にインストールできます)/2008 Server)、. ogg拡張子のMIMEタイプ(「audio/ogg」)を追加する必要があります。 IIS Managerを使用して簡単に実行できます。正確な手順については、 関連する質問 を参照してください。 GUIを使用して実行できない場合は、Webサイトのルートフォルダーにあるweb.configファイルを使用して実行します。例えば:

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".m4v" mimeType="video/m4v" />
            <mimeMap fileExtension=".ogg" mimeType="audio/ogg" />
            <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
            <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
            <mimeMap fileExtension=".webm" mimeType="video/webm"/>
        </staticContent>
    </system.webServer>
</configuration>

残念ながらVisual Studio(Cassini)の組み込みの開発Webサーバーには<system.webServer>の知識がありません。また、Visual Studioの開発Webサーバーの静的ファイルコンテンツタイプはハードコーディングされています(この質問を確認してください: https://stackoverflow.com/questions/5924647/setting-mime-types-using-the-asp-net-開発サーバー )。

.oggファイルが何であるかを組み込みWebサーバーに伝える方法(MIMEタイプを追加する方法)を見つけることができませんでした。

上記に基づいて、組み込みの開発Webサーバーの代わりにIIS 7.xまたはIIS Expressをインストールして使用することをお勧めします( IIS/IIS Expressの設定方法組み込み )の代わりにWebサーバーとして使用されます。

1
LazyOne