Как запустить аудиопоток из iframe после нажатия кнопки

В настоящее время я работаю над интернет-радиостанцией и использую классический HTML-плеер для потоковой передачи:

<audio controls id = "audio" src = "http://stream.url" ></audio>

и простой java-скрипт

<script type = "text/javascript">
    function play(){
        var audio = document.getElementById("audio");
        audio.play();
}
</script>

это означает, что когда я нажимаю кнопку с элементом onclick onclick = "play()", проигрыватель начинает прямую трансляцию.

Теперь я хотел бы сделать то же самое с проигрывателем iframe, которого нет в моем домене. Возможно ли это?

Вот iframe:

<iframe name = "contenedorPlayer" class = "cuadroBordeado" allow = "autoplay" width = "100%" height = "110px" marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no src = "https://cp.usastreams.com/html5-player-barra-responsive.aspx?stream=http://fluoz.radiojar.com:80/54cyaf0kfkeuv&fondo=03&formato=mp3&color=11&titulo=2&autoStart=1&vol=5&nombre=Slu%c5%a1ate+B+FM+Radio&botonPlay=2&imagen=http://bfm.rs/wp-content/uploads/2018/12/logo-min.png"></iframe>

Если это что-то значит, у меня есть доступ к настройке автовоспроизведения ..

Если веб-сайт iframe явно не сообщает вам, что вы можете общаться с iframe, используя JS API / SDK, который они предоставляют, или через postMessage, нет, вы не можете.

blex 30.12.2018 17:53

Есть ли способ отключить звук в iframe и сделать его активным после нажатия кнопки?

Mark 30.12.2018 17:56

Проблема в том, что iframe находится в другом домене, поэтому ваш браузер не позволит вам получить доступ к его содержимому с помощью Javascript. Представьте, если бы вы могли сделать это с помощью iframe Facebook, вы могли бы авто-лайк своей странице без согласия пользователя. Но чтобы помочь вам сделать вещи интерактивными, некоторые веб-сайты (например, Facebook, YouTube ...) предоставляют вам доступ к API-интерфейсам Javascript для безопасного взаимодействия с этими фреймами. Я не вижу ничего подобного на сайте USAStreams, но испанский не является моим основным языком, поэтому я мог его пропустить.

blex 30.12.2018 18:03

Единственное, что могло бы сработать, - это иметь iframe с autoStart=0 в начале, и когда пользователь нажимает одну из ваших кнопок, вы перезагружаете iframe с autoStart=1 в URL-адресе. Но ... у вас нет возможности узнать, воспроизводил ли уже iframe звук или нет

blex 30.12.2018 18:07

Я могу установить автовоспроизведение на странице, которую я использовал для создания iframe, когда сайт загружается, и он работает очень хорошо, означает ли это, что я могу использовать этот метод?

Mark 30.12.2018 18:19

Или я могу отключить звук для всего сайта и нажать кнопку, чтобы снова активировать его, потому что, как только я захожу на сайт, музыка запускается немедленно, потому что iframe имеет установленное автовоспроизведение?

Mark 30.12.2018 18:31

Единственный способ немой iframe - использовать vol=0 в его URL (кстати, я слушал его последние 30 минут, это хорошо, ха-ха)

blex 30.12.2018 18:36

Спасибо: D а как заставить работать через кнопку, может я сделаю 2 кадра, в которых один усилен до 0, а другой до 1 об. Можете ли вы сделать для него функцию, потому что я знаток скриптов?

Mark 30.12.2018 18:41

Или вы можете создать функцию, которая заменит iframe с URL-адресом из vol 0 на iframe, который имеет URL-адрес с vol 1 после нажатия кнопки?

Mark 30.12.2018 18:59

Вы могли бы, но поскольку iframe будет перезагружаться каждый раз, это будет медленно: jsfiddle.net/63hcx8gw/1

blex 30.12.2018 19:11

Только вопрос: почему вы не оставили свой HTML5-плеер?

blex 30.12.2018 19:21

Понятия не имею, но после всего этого я его верну .. В любом случае спасибо за ваше время, которое вы отделили для меня :)

Mark 30.12.2018 19:33

У меня есть еще вопросы по xml, если вы можете мне помочь, или задать новый вопрос?

Mark 30.12.2018 19:34

Если ваш другой вопрос не относится к "запуск аудиопотока из iframe", вам следует создать новый вопрос.

blex 30.12.2018 19:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
14
1 277
1

Ответы 1

Прежде всего, доступ к различным страницам с вашей страницы ограничен безопасностью браузера.

Теперь для вашего случая вы можете заставить его работать, если ваш iframe является дочерним элементом страницы, с которой вы хотите его контролировать.

Вы можете использовать DOM для доступа к нему с помощью document.parent из iframe или путем поиска элемента iframe в вашей DOM.

В противном случае, если вашего iframe на самом деле нет на вашей главной странице или даже в другом домене, то, насколько мне известно, это невозможно.

См. Мой комментарий выше, возможно ли это сделать, потому что у меня есть функция включения автовоспроизведения?

Mark 30.12.2018 18:00

Вы не ответили на мой вопрос. Находится ли iframe на странице, которую вы используете для управления им?

Kiper 30.12.2018 18:05

Другие вопросы по теме