На мобильном, кажется, нам просто нужно дать камере достаточно времени, чтобы выключиться. Для моего тестирования достаточно обернуть getUserMedia
в setTimeout
с задержкой около 1 секунды (1000 мс), хотя я также собираюсь попытаться заменить камеру 3 раза подряд, прежде чем выдать ошибку. Я не уверен, как, или даже если это возможно, проверить, действительно ли устройство остановлено или выключено, но я подозреваю, что это невозможно из-за безопасности браузера.
В идеальном мире MediaStreamTrack.stop()
вернется обещание, которое дает нам информацию о том, действительно ли устройство, связанное с треком, действительно остановлено / выключено или оно все еще работает из-за того, что оно используется в других треках.