Объединение нескольких сценариев управления видео плеером
Здравствуйте.
У меня такой вопрос. Есть небольшой скрипт помогающий осуществлять управление HTML5 видео плеером.
<center>
<video id="movie" width="100%" height="auto" controls="controls" poster="">
<source src="video.mp4" type="video/mp4">
</video>
</center>
<script>var a=document.getElementById("movie");a.onclick=function(){if(a.paused){a.play();}else{a.pause();}};</script>
Он отлично справляется со своей задачей. Но если на странице будет добавленно еще несколько видео роликов, с ключевым элементом Код:
id="movie"
<center>
<video id="movie1" width="100%" height="auto" controls="controls" poster="">
<source src="video1.mp4" type="video/mp4">
</video>
</center>
<br>
<video id="movie2" width="100%" height="auto" controls="controls" poster="">
<source src="video2.mp4" type="video/mp4">
</video>
<script>var a=document.getElementById("movie1");a.onclick=function(){if(a.paused){a.play();}else{a.pause();}};
var b=document.getElementById("movie2");b.onclick=function(){if(b.paused){b.play();}else{b.pause();}};
</script>
но если видео роликов будет еще больше, то придется еще раз увеличивать практически повторяющийся код.Возможно есть способ какого то объединения нескольких скриптов, что бы работал унивестальный поиск по элементу Код:
id="movie\d+" |
Цитата:
<center>
<video id="movie1" width="100%" height="auto" controls="controls" poster="">
<source src="video1.mp4" type="video/mp4">
</video>
</center>
<br>
<video id="movie2" width="100%" height="auto" controls="controls" poster="">
<source src="video2.mp4" type="video/mp4">
</video>
<script>
const videos = document.querySelectorAll('video');
function playpause () {
if (this.paused) {
this.play();
} else {
this.pause();
}
videos.forEach (video => video.addEventListener('clic', playpause));
</script>
|
Спасибо за совет, но это несрабатывает, как с одним, так и с двумя видео.. Вот html файл и 2 мини видео ролика, что бы было проще это увидеть. К сожалению я сам не особо разбираясь в javascript что бы найти в чем причина.. Я проверил в раузерах Google hrome и IE 11.
Похоже что это работает только для Firefox, но исходный скрипт, почему то работает во всех браузерах. |
Цитата:
Так пробуйте
<center>
<video id="movie1" width="100%" height="auto" controls="controls" poster="">
<source src="video1.mp4" type="video/mp4">
</video>
</center>
<br>
<video id="movie2" width="100%" height="auto" controls="controls" poster="">
<source src="video2.mp4" type="video/mp4">
</video>
<script>
const videos = document.querySelectorAll('video');
function playpause () {
if (this.paused) {
this.play();
} else {
this.pause();
}
}
videos.forEach (video => video.addEventListener('clic', playpause));
</script>
|
В Firefox, запуск срабатывал, поскольку там видимо, есть своя система управлением плеером с помощью кликов, (проверил это убрав полностью весь javascript код). Исправление со скобкой ничего не поменяло. Видимо метод вызова, какой то нестандартный. В любом случае, Спасибо за попытку помочь.
|
Цитата:
<center>
<video id="movie1" width="100%" height="auto" controls="controls" poster="">
<source src="video1.mp4" type="video/mp4">
</video>
</center>
<br>
<video id="movie2" width="100%" height="auto" controls="controls" poster="">
<source src="video2.mp4" type="video/mp4">
</video>
<script>
const videos = document.querySelectorAll('video');
function playpause () {
if (this.paused) {
this.play();
} else {
this.pause();
}
}
videos.forEach (video => video.addEventListener('click', playpause));
</script>
ну так то уж точно должно сработать. |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:39. |