質問: WebAudioAPIを見ると、ユーザーがイベントを発火させないと自動で音を流すことはできないようなのですが、 Socket.ioを利用して、メッセージを受け取った際に、受け取り側でブラウザからメッセージ通知音を出したいのですが、 そのような実装を行うことは可能でしょうか? (受け取り側は基本何もせず、ブラウザを開いた状態にしているのみ。) 可能であれば、どのように行えばいいでしょうか?ご教示頂けると幸甚です。 なお、使用ブラウザは、PC上のChromeと、Android上のChrome、iPhone上のSafariです。 ユーザー側がミュートの場合は、音を鳴らす必要は御座いません。 また、Socketでの通知は受け取れている前提でお願い致します。 参照 https://qiita.com/pentamania/items/2c568a9ec52148bbfd08
回答: > > テキストユーザーがイベントを発火させないと自動で音を流すことはできないようなのですが、 > > Socket.ioを利用して、メッセージを受け取った際に、受け取り側でブラウザからメッセージ通知音を出したいのですが、 > > そのような実装を行うことは可能でしょうか? > > > 可能です。 記載していただいたURLに記述されている内容の通り、 > > アンロックの条件は「ユーザイベントのハンドラで一度でも音を鳴らす」こと。(無音でも良い) > > > を行う必要があります。例えば、 1. ボタンを配置して、クリックをした時に無音の音声を流すようにする 2. 通知音を流す前に、何かしらのボタンを押させるユーザーフローを実装する この流れの実装ができれば、JavaScriptの任意のタイミングで音を鳴らすことが可能です。