Webでスマホカメラを使おうとしてハマった話

機械学習のデータ収集のため、スマホで画像を取得&増幅してサーバへせっせと送るWebアプリを作っていたのですが、久しぶりに動かそうとすると

Failed to execute 'createObjectURL' on 'URL'

とかいって動かない。

なんだそりゃ?何も変えてないぞ。ソースは以下を参考にして組んだもの。

developer.mozilla.org

いろいろ調べてみると、原因は「Google Chrome」だった。

stackoverflow.com

Google Chromeでは、window.URL.createObjectURLは廃止予定だと。

実装方法

Chrome

video.srcObject = stream;

Chrome以外

video.src = window.URL.createObjectURL(stream);

Webアプリを作っていると、こういうことにしょっちゅうぶつかるなぁ。