<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を使用してオンとオフを切り替えたり、音量を調整できるようにする必要があるため、探しているものではありません。はい、私はバックグラウンドミュージックが迷惑であることを知っています。
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サーバーとして使用されます。