Атрибут disableremoteplayback тега <audio>
Описание
Атрибут disableremoteplayback для тега <audio> отключает возможность удаленного воспроизведения аудио на устройствах, подключенных через технологии типа Chromecast или AirPlay. Это булевый атрибут, который активируется при его наличии.
<audio controls disableremoteplayback>
<source src="music.mp3" type="audio/mpeg">
Ваш браузер не поддерживает аудио элемент.
</audio>
Особенности работы:
| Платформа | Поведение | Поддержка |
|---|---|---|
| Chrome (Chromecast) | Скрывает иконку трансляции | ✓ |
| Safari (AirPlay) | Блокирует вывод на Apple TV | ✓ |
| Мобильные браузеры | Запрещает вывод на внешние устройства | Частичная |
Когда использовать:
- Конфиденциальный контент: Когда аудио не должно покидать устройство
- Премиум-аудио: Для ограничения распространения платного контента
- UI/UX причины: Если удаленное воспроизведение нарушает пользовательский опыт
Ограничения: Атрибут не гарантирует полной защиты контента от копирования, а лишь отключает стандартные механизмы удаленного воспроизведения.
Альтернативные методы защиты:
<audio id="secure-audio" controls>
<source src="protected.mp3" type="audio/mpeg">
</audio>
<script>
// Дополнительная проверка устройства вывода
document.getElementById('secure-audio').onplaying = function() {
if(!this.sinkId || this.sinkId === '') {
this.pause();
alert('Воспроизведение на внешних устройствах запрещено');
}
};
</script>
Лучшие практики:
- Сочетайте с DRM-решениями для важного контента
- Указывайте в пользовательском соглашении ограничения
- Для массового контента лучше не ограничивать функции
- Тестируйте на реальных устройствах
Определение поддержки:
// Проверка поддержки атрибута
const audio = document.createElement('audio');
const supportsRemotePlayback = 'remote' in audio;
console.log('Поддержка RemotePlayback API:', supportsRemotePlayback);
Совет: Для легального ограничения распространения контента используйте профессиональные системы защиты типа Widevine.
Примечание: Атрибут появился в HTML Media Extensions и поддерживается не всеми браузерами. Всегда предусматривайте fallback-решения.