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

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

推薦する

Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...

HTML タグに類似: strong および em、q、cite、blockquote

XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...

Linux ファイル/ディレクトリの権限と所有権の管理

1. ファイルの権限と所有権の概要1. アクセス権Read r: ファイルの内容を表示し、ディレクト...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

Axios はリクエストをキャンセルし、重複リクエストを回避します

目次起源現状リクエストをキャンセル cancelTokenリクエスト方法の変更重複したリクエストを避...

mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...

デザイン協会: なぜ間違った場所を探したのですか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

easycomモードでUNI-APPコンポーネントを呼び出す際に習得する必要がある実践的なスキル

この記事は議論の出発点となることを目的としています。詳細なドキュメントと easycom の仕様につ...

Dockerイメージが消える問題を解決する

1. 50と93では鏡像が消える [root@h50 /]# df -h ファイルシステムの使用済み...

単一選択折りたたみメニュー機能を実現するCSS

前回の「最もシンプルなスイッチを実現するCSS」のように、HTML5とCSS3でほとんどの機能をすで...

React Hooksコンポーネント間で値を渡す方法の詳細な説明(tsを使用)

目次父から息子へ息子から父へクロスレベルコンポーネント(親から子孫)父から息子へpropsを通じて値...

詳細なLinuxインストールチュートリアル

(Win7 システム) VMware 仮想マシンのインストール チュートリアルVMware は仮想マ...

外部キー制約を持つテーブルデータを削除する MySQL メソッドの紹介

MySQLでテーブルやデータを削除する場合、 [エラー] 1451 - 親行を削除または更新できませ...