JavaScriptで作ったWebアプリ上で音を鳴らそうとした際に、
Uncaught (in promise) DOMException
というエラーが出たので色々と検索するとtry~catch文ではこのエラーをキャッチできないとの事で、以下のような対処方法が載っていた。
setTimeout(function(){ audio.play(); // 音を鳴らす部分 }, 0);
多くのサイトでsetTimeoutのミリ秒引数部分が、0かあるいは10ミリ秒くらいの短い時間で指定されていた。
しかし何度やっても同じエラーが出てしまうので、少し余裕を持たせた方がいいのかもしれないと思い1000ミリ秒に変更するとすんなり動くようになった。
setTimeout(function(){ audio.play(); // 音を鳴らす部分 }, 1000);
わたしの作成したアプリでは、上記時間を500ミリ秒に変更しても問題なく動作していた。
どうやら「Uncaught (in promise) DOMException」エラーには、動作時間も影響するようだ。
コメント