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

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

推薦する

JavaScript のクロージャの詳細な説明

導入クロージャは JavaScript の非常に強力な機能です。いわゆるクロージャは関数内の関数です...

Dockerコンテナのk8sデプロイメントの実装

環境: (docker、k8s クラスター)、前回 docker で起動した Java プログラムの...

Windows 10 での MySQL 8.0.16 のインストールと設定のチュートリアル

この記事では、参考までにMySQL 8.0.16のインストールと設定方法のグラフィックチュートリアル...

HTML のセルパディングとセルスペース属性を図で説明します

セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...

Centos7 で MySQL マスター スレーブ サーバーを構築する方法 (グラフィック チュートリアル)

この記事では主に CentOS 上で MySQL マスタースレーブサーバーを構築する方法を紹介します...

Linux+ApacheサーバURLの大文字と小文字の区別の問題を解決する

今日、問題が発生しました。ブラウザのアドレスバーにURLアドレスを入力する際、ページを正常にアクセス...

ルートパスワードを変更するための MySQL 設定、MySQL サーバー接続、MySQL 共通コマンド図

1. ルートパスワードの設定と変更mysql が起動しているかどうかを確認します。起動していない場合...

Ubuntu 16.04 カーネルのアップグレード手順

1. 環境仮想マシン上で実行されているUbuntu 16.04では、コマンドuname -rを使用し...

JS 内の Json 文字列 + Cookie + ローカルストレージ

目次1.Json文字列1.1Json構文1.2 例2. クッキー2.1 使い方は? 3. ローカルス...

JavaScript WeakMap の使い方の詳しい説明

WeakMap オブジェクトは、キーが弱参照であるキー/値のペアのコレクションです。キーはオブジェク...

Vue3 の使用 (パート 1) Vue CLI プロジェクトの作成

目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...

MySQLのファジークエリの要約

1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

Vue Nativeを使用したモバイルアプリケーションの構築プロセスの完全な記録

目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...