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クイックリカバリソリューション

なぜこのような記事を書いたかというと、数日前の夜、仕事が終わろうとしていたときに、業務側で突然、テー...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

Centos7 で NIS を構成する詳細な手順

目次原理ネットワーク環境の準備インストール前の準備NIS サーバー操作NIS クライアント操作原理N...

突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

マスターのメソッドによると、原因は sysctl net.ipv4.ip_forward であること...

Baidu の https 認証プロンプト「http サイトを 301 から https サイトにリダイレクトしてください」の解決方法の詳細な説明

最近、ウェブサイトを https アクセスに変換したいのですが、すべて完了した後、Baidu Web...

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

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

...

Vue ファースト スクリーン パフォーマンス最適化コンポーネントの知識ポイントの概要

Vue ファースト スクリーン パフォーマンス最適化コンポーネントVue ファースト スクリーン パ...

React+Antdはテーブルの追加、削除、変更の例を実装します

目次テーブル/index.jsテーブル/モデル/index.jsテーブル/モデル/モジュール/bas...

効率をN倍に高めるVimクイックリファレンステーブル15個

昨年の前半から開発と娯楽のために Linux を使い始めましたが、今では Windows には戻れま...

手の動きをリアルタイムで監視するための Handtrack.js ライブラリ (推奨)

【はじめに】: Handtrack.jsは、ブラウザ上で直接リアルタイムの手の動きの追跡と検出を実...

Reactマウスの複数選択機能の設定方法

一般的に、リストには選択機能があり、単一選択、二重選択、複数選択が非常に一般的です。カスタム ループ...

Windows に WSL をインストールして構成する方法

WSLとはBaidu 百科事典からの一節を引用します。 Windows Subsystem for ...

Vue は Ctrip のカルーセル効果を模倣します (スライディング カルーセル、以下は高度に適応)

まずケースを見てみましょう。vue+swiper を使用して実装します。スライドの高さが異なる場合、...

Dockerfileを使用してDockerイメージを構築する

目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...