Пояснение:
Эта проблема возникает из-за того, что Chrome по умолчанию разрешает до 6 открытых подключений. Поэтому, если вы одновременно транслируете несколько медиафайлов из 6 <video>
или <audio>
тегов, 7-е соединение (например, изображение) просто зависнет, пока не откроется один из сокетов. Обычно открытое соединение закрывается через 5 минут бездействия, и поэтому вы видите, что в этот момент наконец загружаются ваши .png-файлы.
Решение 1:
Этого можно избежать, сведя к минимуму количество тегов мультимедиа, которые поддерживают открытое соединение. А если вам нужно их больше 6, убедитесь, что вы загружаете их последними или что у них нет таких атрибутов, как preload="auto"
.
Решение 2:
Если вы пытаетесь использовать несколько звуковых эффектов для веб-игры, вы можете использовать API веб-аудио . Или, чтобы упростить ситуацию, просто используйте библиотеку, такую как SoundJS , которая является отличным инструментом для одновременного воспроизведения большого количества звуковых эффектов / музыкальных треков.
Решение 3. Принудительно открыть розетки (не рекомендуется)
При необходимости вы можете принудительно открыть сокеты в своем браузере (только в Chrome):
- Перейдите в адресную строку и введите
chrome://net-internals
.
- Выберите
Sockets
из меню.
- Щелкните по
Flush socket pools
кнопке.
Это решение не рекомендуется, потому что вы не должны ожидать, что посетители будут следовать этим инструкциям, чтобы просмотреть ваш сайт.