iOS版SafariやChromeなどのブラウザはJSでボリューム変更ができない
アプリケーション開発をしていると、WebView埋め込むのでブラウザでも動くよね?
なんてテストをすると思います。
今回は、そんな時に発生した厄介な経験を・・・。
iOS版Safariはボリューム変更ができない
厳密には、JSでのコントロールができません。
該当部分を翻訳すると、
デスクトップでは、<audio>要素または<video>要素のvolumeプロパティを設定および読み取ることができます。
これにより、コンピュータの現在の音量設定に相対的な要素のオーディオ音量を設定できます。値1は、通常のレベルでサウンドを再生します。
値0はオーディオを消音します。 0と1の間の値はオーディオを減衰させます。
このボリューム調整は、コンピュータ上で音楽を聴きながら、ユーザーがゲームをミュートすることができるため、便利です。
iOSデバイスでは、オーディオレベルは常にユーザーの物理的な制御下にあります。
ボリュームプロパティはJavaScriptでは設定できません。
volumeプロパティを読み取ると常に1が返されます。
とありますね。
音声を扱うときは要注意です。
追記:ボリューム変更できないのはどうやらブラウザ全般のようです。