「音の課題と対策」
〔無音の問題〕
windowsやandroidでは音が出るのに,ninjaサイトでiPad mini2では,safariでもcromでも2回目から音がでません。
so-netやwdomainなどのサイトでは,同じiPadを含めてどのosでも音がでます。
2020/10/7
「忍者ホームページ ツールへ」
件名:iPadで音が出ません
URL:https://jdl.iinaa.net/index.html
〔課題〕
10年以上使っていたso-netのホームページから来年の1月で停止とのお知らせが来ました。
「じぶんでドリル」を http://www006.upp.so-net.ne.jp/jdrill/index.htm
からhttps://jdl.iinaa.net/index.htmlへ移行をしています。
iPadでドリルにつなぐと,so-netでは「ピンポン」という正解音が出ますが,iinaa.netでは,無音です。
同じIPadで同じJavaScriptがサイトの違いで音が出ないという症状の原因が分かりません。
〔試した操作〕
○ windows10 Chromeでは,so-netでもjdl.iinaa.netでも音が出ます。
○ windows10 Edgeでもandroidのスマホでも音が出ます。
× jdrill.ho-zuki.comでも音がでません。
× iPadの再起動や「すべての設定をリセット」をしてみました。音量,消音も変えてみました。
× Safariの履歴を消してみました。
× 言語を変更するというヒントで英語にしてみました。
△ サイトのフォルダに音声データ(wav)はあります。mp3形式のデータも入れてみました。
サイトによって何が違うのでしょうか。
ブラウザ:Chrome 85.0.4183.121 iPad用Chrome Safari
2020/10/10
これまで対応するブラウザが多いのでwavを使っていました。
mp3に変えると,1回目だけ再生できました。
次に,再生前にロードしてみました。
https://www.it-swarm-ja.tech/ja/javascript/safari に
「このエラーは、Safariがロードに失敗したビデオで.play()を呼び出すたびに発生する」
とありました。共通点がありそうです。
こうして,どうにかピンポンの音が出るようになりました。
形式を wav ⇒ mp3
jd.sound['pinpon'].load(); // 事前に毎回ロード
jd.sound['pinpon'].play();
もしかすると,so-netのサーバーのソフトと忍者さんのサーバーのソフトの違いではないかと想像しています。
そしてiOsのsafariの音声の規定の変更に対応したどうかのちがいではないでしょうか。
2021/1011
「ninjaサイト」'iinaa.net' 'ho-zuki.com' でloadしないと2回目から無音
pinpon.addEventListener("loadeddata", ()=>{console.log("再生可能");});
で調べると,再生可能になっていませんでした。
「ninjaサイト」の方が正当なのかもしれません。
〔無音の対策〕
音データを毎回loadすると再生可能になります。
対策 nimjyaでiosのsafariを使う時は,音データを毎回loadします。
音データをloadするたびに少しだけ間が開きます。
判定音なので間が気になります。