Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 27.11.2019
Сообщений: 2

Видеоплеер на JS

27.11.2019, 19:57. Показов 2583. Ответов 2
Метки css, html, js (Все метки)

Студворк — интернет-сервис помощи студентам
Учусь HTML5 по учебнику Гоше.После ввода JS,далее пишется видеоплеер на нём.Написал(или правильнее переписал),код проверил.При открытии в браузерах html документа,видео продолжает загружаться на плеере браузера,а не на плеере документа. Пробовал запустить на chrome,ковырялся в flash player'е,вроде как выключил,но не помогло.Также пробовал на Edge и на IE.
Не могу понять в чём я косячу. Или в коде ошибка,или в браузерах дело?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Видеопроигрыватель</title>
    <link rel="stylesheet" href="player.css">
    <script src="player.js"></script>
</head>
<body>
<section id="player">
    <video id="media" width="720" height="400" preload controls loop>
        <source src="C:\Program Files\Sublime Text 3\HTML\Welcome.mp4">
    </video>
    <nav>
        <div id="buttons">
            <button type="button" id="play">play</button>
        </div>
        <div id="bar">
            <div id="progress"></div>
        </div>
        <div style="clear: both"></div>
    </nav>
</section>
</body>
</html>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function initiate(){
    // initiate так как она инициирует приложения после загрузки окна
    maxim    =600;
    mmedia   =document.getElementById('media');
    play     =document.getElementById('play');
    bar      =document.getElementById('bar');
    progress =document.getElementById('progress')
    // Объявили глобальные переменные
 
    play.addEventListener('click', push, false);
    bar.addEventListener('click', move,false);
    // Написали прослушиватели на функции push и move
}
function push(){
    // Проверяем свойства paused и ended,т.е. если видео воспроизводиться, их значения =false
    if(!mmedia.paused && !mmedia.ended) {
        // Если видео воспроизводится,то вызываем команду паузы
        mmedia.pause();
        play.innerHTML='Play';
        window.clearInterval(Loop);
    }else{
        //Если остановлено или закончилось,вызываем запуск видео
        mmedia.play();
        play.innerHTML='Pause';
        loop=setInterval(status, 1000);
        // Вызываем каждую секунду функцию Status
    }
}
function status(){
    // Если видео не закончилось,то вычисляем длину индикатора прогресса
    if(!mmedia.ended){
        var size=parseInt(mmedia.currentTime*maxim/mmedia.duration);
        progress.style.width=size+'px';
    }else{
        progress.style.width='0px';
        play.innerHTML='Play';
        window.clearInterval(loop);     
    }
}
function move(e){
    if(!mmedia.paused && !mmedia.ended){
        var mouseX=e.pageX-var.offsetLeft;
        var newtime=mouseX*mmedia.duration/maxim;
        mmedia.currentTime=newtime;
        progress.style.width=mouseX+'px'
    }
}
// Запустить функцию initiate после загрузки документа
window.addEventListener('load',initiate, false);
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
body {
    text-align: center;
}
header, section, footer, aside, nav, article, figure, figcaption, hgroup{
    display: block;
}
#player{
    width                : 720px;
    margin               : 20px auto;
    padding              : 5px;
    background           : #999;
    border               : 1px solid #666;
    
    -moz-border-radius   : 5px;
    -webkit-border-radius: 5px;
    border-radius        : 5px 
}
nav{
    margin: 5px 0px;
}
#buttons{
    float: left;
    width: 85px;
    height: 20px;
}
#bar{
    position: relative;
    float: left;
    width: 600px;
    height: 16px;
    padding: 2px;
    border: 1px solid #CCCCCC;
    background: #EEE;
}
#progress{
    position: absolute;
    width: 0;
    height: 16px;
    background: rgba(0,0,150,.2);
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2019, 19:57
Ответы с готовыми решениями:

Как запустить видеоплеер
в локальной папке на компе лежит клип, как его можно запустить при клике по ссылке( &lt;a href=&quot;file:xxx.avi&quot;.)? когда кликаешь...

Видеоплеер с поддержкой VAST / VPAID
неподелитесь ссылками или примерами? У меня задача - плеер с интегрированной рекламой

нужен видеоплеер с отображением реального времени на нем
помогите реализовать видеоплеер на html5, чтоб на нем отображалось реальное время в верху

2
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
29.11.2019, 00:50
Лучший ответ Сообщение было отмечено SolDok как решение

Решение

https://jsfiddle.net/2jnbs8te/

Цитата Сообщение от SolDok Посмотреть сообщение
var mouseX=e.pageX-var.offsetLeft;
вот тут вот ошибка "unexpected token "var"".. что-то не правильно списали видимо..

может быть вот так надо?

JavaScript
1
var mouseX=e.pageX-mmedia.offsetLeft;
1
0 / 0 / 0
Регистрация: 27.11.2019
Сообщений: 2
29.11.2019, 11:34  [ТС]
Да,вы правы.Благодарю!Всё же долго мне ещё учиться с такой внимательностью..
В учебники за место var должно быть bar:

Добавлено через 11 минут
Да,вы правы.Благодарю!Всё же долго мне ещё учиться с такой внимательностью..
В учебники за место var должно быть bar:
var mouseX=e.pageX-bar.offsetLeft; вместо var mouseX=e.pageX-var.offsetLeft;
А также:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function push(){
    // Проверяем свойства paused и ended,т.е. если видео воспроизводиться, их значения =false
    if(!mmedia.paused && !mmedia.ended) {
        // Если видео воспроизводится,то вызываем команду паузы
        mmedia.pause();
        play.innerHTML='Play';
        window.clearInterval(Loop);
    }else{
        //Если остановлено или закончилось,вызываем запуск видео
        mmedia.play();
        play.innerHTML='Pause';
        loop=setInterval(status, 1000);
        // Вызываем каждую секунду функцию Status
    }
}
Не понятно почему,но в учебнике напечатано так. Когда я пытался понять как работает оператор if в этом сегменте,чуть не сломал голову. Я не мог понять, почему если видео стоит или закончилось,то мы вызываем метод Pause.Ясное дело, что ничего не работало и только после смены методов pause и play,плеер стал функционировать. Пошёл искать ещё такие же учебники и в итоге в тех,что нашёл всё тот же код с ошибкой.Но возможно исправили в более поздней версии издания,так как в свободном доступе нашёл только от 2013 года.

Теперь код js выглядит так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function initiate(){
    // initiate так как она инициирует приложения после загрузки окна
    maxim    =600;
    mmedia   =document.getElementById('media');
    play     =document.getElementById('play');
    bar      =document.getElementById('bar');
    progress =document.getElementById('progress')
    // Объявили глобальные переменные
 
    play.addEventListener('click', push, false);
    bar.addEventListener('click', move,false);
    // Написали прослушиватели на функции push и move
}
function push(){
    // Проверяем свойства paused и ended,т.е. если видео воспроизводиться, их значения =false
    if(!mmedia.paused && !mmedia.ended) {
        // Если видео воспроизводится,то вызываем команду паузы
        mmedia.pause();
        play.innerHTML='Play';
        window.clearInterval(Loop);
    }else{
        //Если остановлено или закончилось,вызываем запуск видео
        mmedia.play();
        play.innerHTML='Pause';
        loop=setInterval(status, 1000);
        // Вызываем каждую секунду функцию Status
    }
}
function status(){
    // Если видео не закончилось,то вычисляем длину индикатора прогресса
    if(!mmedia.ended){
        var size=parseInt(mmedia.currentTime*maxim/mmedia.duration);
        progress.style.width=size+'px';
    }else{
        progress.style.width='0px';
        play.innerHTML='Play';
        window.clearInterval(loop);     
    }
}
function move(e){
    if(!mmedia.paused && !mmedia.ended){
        var mouseX=e.pageX-bar.offsetLeft;
        var newtime=mouseX*mmedia.duration/maxim;
        mmedia.currentTime=newtime;
        progress.style.width=mouseX+'px'
    }
}
// Запустить функцию initiate после загрузки документа
window.addEventListener('load',initiate, false);
И всё работает!Ещё раз благодарю за вашу внимательность!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.11.2019, 11:34
Помогаю со студенческими работами здесь

Как вставить определённый код в видеоплеер при уменьшении окна браузера
Здравствуйте!Ув.форумчане...извините меня,я понимаю что я только зарегистрировалась здесь и сразу же прошу помощи.Вы извините меня...

Преобразовать ссылку с видео в видеоплеер
Кто нибудь знает как это сделать? Может есть, что почитать? Я и название этой технологии не могу узнать.

Видеоплеер
Доброго времени суток! У меня есть вопрос: как создать в WPF видеоплеер, чтобы это было не так через жопу, как здесь: ...

Видеоплеер
Можно ли такое сделать в VBA ??? Чтобы с помощью VB смотреть видео, сделаем программу. На форму кинь кнопку(Caption =...

Видеоплеер
Появилась проблема: Использую MediaPlayer1, при загрузке на него видео. выскакивает не большая форма с видео. Вопрос: Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru