В настоящее время я работаю над интернет-радиостанцией и использую классический 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 находится в другом домене, поэтому ваш браузер не позволит вам получить доступ к его содержимому с помощью Javascript. Представьте, если бы вы могли сделать это с помощью iframe Facebook, вы могли бы авто-лайк своей странице без согласия пользователя. Но чтобы помочь вам сделать вещи интерактивными, некоторые веб-сайты (например, Facebook, YouTube ...) предоставляют вам доступ к API-интерфейсам Javascript для безопасного взаимодействия с этими фреймами. Я не вижу ничего подобного на сайте USAStreams, но испанский не является моим основным языком, поэтому я мог его пропустить.
Единственное, что могло бы сработать, - это иметь iframe с autoStart=0 в начале, и когда пользователь нажимает одну из ваших кнопок, вы перезагружаете iframe с autoStart=1 в URL-адресе. Но ... у вас нет возможности узнать, воспроизводил ли уже iframe звук или нет
Я могу установить автовоспроизведение на странице, которую я использовал для создания iframe, когда сайт загружается, и он работает очень хорошо, означает ли это, что я могу использовать этот метод?
Или я могу отключить звук для всего сайта и нажать кнопку, чтобы снова активировать его, потому что, как только я захожу на сайт, музыка запускается немедленно, потому что iframe имеет установленное автовоспроизведение?
Единственный способ немой iframe - использовать vol=0 в его URL (кстати, я слушал его последние 30 минут, это хорошо, ха-ха)
Спасибо: D а как заставить работать через кнопку, может я сделаю 2 кадра, в которых один усилен до 0, а другой до 1 об. Можете ли вы сделать для него функцию, потому что я знаток скриптов?
Или вы можете создать функцию, которая заменит iframe с URL-адресом из vol 0 на iframe, который имеет URL-адрес с vol 1 после нажатия кнопки?
Вы могли бы, но поскольку iframe будет перезагружаться каждый раз, это будет медленно: jsfiddle.net/63hcx8gw/1
Только вопрос: почему вы не оставили свой HTML5-плеер?
Понятия не имею, но после всего этого я его верну .. В любом случае спасибо за ваше время, которое вы отделили для меня :)
У меня есть еще вопросы по xml, если вы можете мне помочь, или задать новый вопрос?
Если ваш другой вопрос не относится к "запуск аудиопотока из iframe", вам следует создать новый вопрос.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Прежде всего, доступ к различным страницам с вашей страницы ограничен безопасностью браузера.
Теперь для вашего случая вы можете заставить его работать, если ваш iframe является дочерним элементом страницы, с которой вы хотите его контролировать.
Вы можете использовать DOM для доступа к нему с помощью document.parent из iframe или путем поиска элемента iframe в вашей DOM.
В противном случае, если вашего iframe на самом деле нет на вашей главной странице или даже в другом домене, то, насколько мне известно, это невозможно.
См. Мой комментарий выше, возможно ли это сделать, потому что у меня есть функция включения автовоспроизведения?
Вы не ответили на мой вопрос. Находится ли iframe на странице, которую вы используете для управления им?
Если веб-сайт iframe явно не сообщает вам, что вы можете общаться с iframe, используя JS API / SDK, который они предоставляют, или через
postMessage, нет, вы не можете.