HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題
HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの問題について説明します。

1. <embed type="audio/mp3" src="" autostart=true loop=false></embed>
問題: IE8 (メディア プレーヤー プラグイン経由) では正常に動作しますが、IE6 および IE7 では動作しません。
Firefoxで再生するにはQuickTimeプラグインをインストールする必要があります
ChromeはこれをHTML5の<vidio>タグに変換し、再生はできるものの画面全体がブルースクリーンになる。
Opera が自動再生されない

2. <embed type="audio/midi" src="" autostart=true loop=false></embed>
問題: ビデオは IE6 と IE7 では正しく再生されませんが、IE8 では正常に再生されます。
Firefoxでは正常
Chrome で正常に再生するには、不正な QuickTime プラグインが必要です
Opera が自動再生されない

3. <オブジェクトデータ="" />
問題: IE6 および 7 ではビデオを再生できません。IE8 では「Articx は正常に使用されていません」というメッセージが表示されます。
Firefoxでは正常
Chromeでは正常
Operaはサポートしていません

4. <audio src="" type="audio/mp3" />
問題: HTML5 タグは Chrome でのみサポートされています

5.

コードをコピー
コードは次のとおりです。

<音声自動再生>
<ソース src="" type="audio/mp3" />
<埋め込み src="" type="audio/mp3"/>
</音声>

問題: IE6 と IE7 はサポートしていませんが、他のブラウザはサポートしています。Opera は自動的に再生できません。

6. <embed src=""><noembed><bgsound src=""></noembed>
問題: IE6 と IE7 はサポートされていません。他のブラウザはサポートされていますが、Opera は自動的に再生できません。

上記を踏まえて、私は以下の方法を採用しました(jQuery で実行)。

コードをコピー
コードは次のとおりです。

(navigator.userAgent.indexOf("Chrome") > -1) の場合 {
Chromeの場合:
<audio src="" type="audio/mp3" autoplay="自動再生" hidden="true"></audio>
}そうでない場合 (navigator.userAgent.indexOf("Firefox")!=-1) {
Firefoxの場合:
<embed src="" type="audio/mp3" hidden="true" loop="false" マスターサウンド></embed>
}それ以外の場合 (navigator.appName.indexOf("Microsoft Internet Explorer")!=-1 && document.all) {
IE(6,7,8)の場合:
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"><param name="AutoStart" value="1" /><param name="Src" value="" /></object>
}そうでない場合 (navigator.appName.indexOf("Opera")!=-1) {
Oprea の場合:
<埋め込み src="" type="audio/mpeg" loop="false"></埋め込み>
}それ以外{
<embed src="" type="audio/mp3" hidden="true" loop="false" マスターサウンド></embed>
}

または

コードをコピー
コードは次のとおりです。

var ua = navigator.userAgent.toLowerCase();
if(ua.match(/msie ([\d.]+)/)){
jQuery('#__alert_sound').html('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"><param name="AutoStart" value="1" /><param name="Src" value="/sounds/alert/1.mp3" /></object>');
}
そうでない場合は、ua.match(/firefox\/([\d.]+)/)){
jQuery('#__alert_sound').html('<embed src="/sounds/alert/1.mp3" type="audio/mp3" hidden="true" loop="false" mastersound></embed>');
}
そうでない場合、ua.match(/chrome\/([\d.]+)/)){
jQuery('#__alert_sound').html('<audio src="/sounds/alert/1.mp3" type="audio/mp3" autoplay="autoplay" hidden="true"></audio>');
}
そうでない場合、ua.match(/opera.([\d.]+)/)){
jQuery('#__alert_sound').html('<embed src="/sounds/alert/1.mp3" hidden="true" loop="false"><noembed><bgsounds src="/sounds/alert/1.mp3"></noembed>');
}
そうでない場合、ua.match(/version\/([\d.]+).*safari/)){
jQuery('#__alert_sound').html('<audio src="/sounds/alert/1.mp3" type="audio/mp3" autoplay="autoplay" hidden="true"></audio>');
}
それ以外 {
jQuery('#__alert_sound').html('<embed src="/sounds/alert/1.mp3" type="audio/mp3" hidden="true" loop="false" mastersound></embed>');
}

<<:  CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

>>:  アーティストの自己啓発におけるいくつかの経験

推薦する

MySQL ストアド プロシージャにおけるループ ステートメント (WHILE、REPEAT、LOOP) の使用法の分析

この記事では、例を使用して、MySQL ストアド プロシージャでのループ ステートメント (WHIL...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...

Navicat がリモートで SQL Server に接続し、MySQL に変換する詳細な手順

序文最近、プロジェクトで SQL Server を使用するプログラムに遭遇しました。このデータベース...

JS 正規マッチングの落とし穴の記録

最近、JS の正規表現マッチングの落とし穴を発見したのですが、その時はあまりにも奇妙だったので、何か...

Navicat 接続 MySQL エラーの説明分析

目次環境仮想マシンバージョンMySQL バージョン事前準備MySQLの実行ステータスを確認するルート...

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示このメソッドは主にオーバーフローを通じて BFC をトリガーし...

CSS3 のエラスティック レイアウトでの em の使用の概要: 1em は何ピクセルですか?

私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...

Jenkins+tomcat の自動ホットデプロイメント/再起動と発生した問題の解決策 (推奨)

1. 背景同社のプロジェクトは、これまでは手動で Maven でパッケージ化し、サーバーにアップロ...

MySQLカーソルの使い方と機能の詳細な説明

[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...

MySQL ルートパスワードを変更する 4 つの方法 (要約)

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター

1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...

JavaScript の new 演算子の原理と例の詳細な説明

新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。イ...

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...

CSS 手法を使用してモジュール性を実現する例

1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...