Видео не работает в медиаплеере html5 в Codeigniter

Я пытаюсь воспроизвести видео с помощью медиаплеера html5 в веб-приложении, созданном с использованием фреймворка codeigniter. Это то, что у меня есть до сих пор:

      public function view($settings, Screen $screen)
      {
             $view = "<video width='100%'' height='100%'' controls>
                         <source src='application/views/video/Arrow.mp4' type='video/mp4'>
                         Your browser does not support the video tag.
                      </video>";
             return $view;
      }
}

Я пытался поместить видеофайл в разные каталоги, я пытался добавить мимы для типа файла.


person Selida    schedule 15.06.2015    source источник


Ответы (3)


Вам нужно поместить видео вне папки application.

В архитектуре MVC models и views не должны быть доступны пользователю напрямую, кроме controller.

Создайте папку с именем videos в корневом каталоге вашего проекта, поместите файл Arrow.mp4 в эту папку и измените этот блок кода, чтобы получить результаты.

function view ( $settings, $screen )
{
    $view = "<video width='100%' height='100%' controls>
                 <source src='videos/Arrow.mp4' type='video/mp4'>
                 Your browser does not support the video tag.
             </video>";
    echo $view;
}
person viral    schedule 15.06.2015
comment
с какими проблемами вы сталкиваетесь? можешь уточнить? - person viral; 15.06.2015
comment
Сам плеер появляется на странице, но видео не воспроизводится. Элементы управления отображаются серым цветом. Это веб-приложение предназначено для внутреннего использования, и я использую Chrome в качестве веб-браузера на всех машинах, на которых я использую это приложение. Я знаю, что хром может воспроизводить файл, поскольку я тестировал это на отдельной веб-странице, которая просто содержит медиаплеер html5, и он отлично работает. - person Selida; 15.06.2015
comment
щелкните правой кнопкой мыши на своей странице, нажмите view source, проверьте, можете ли вы щелкнуть ссылку рядом с src. - person viral; 15.06.2015
comment
Если я открою ссылку рядом с src в новой вкладке, она просто выдаст мне сообщение 404. Он смотрит на ссылку, как будто она находится в каталоге просмотра. Мне нужно положить его туда вместо этого? - person Selida; 15.06.2015
comment
изменить <source src='videos/Arrow.mp4' type='video/mp4'> на <source src='{base_url()}videos/Arrow.mp4' type='video/mp4'> - person viral; 15.06.2015
comment
Я снова попробовал то, что вы предложили, но с базовым URL-адресом, введенным вручную. Затем я перешел к просмотру источника, как и раньше, открыл ссылку рядом с src в новом кране, и он сказал, что не может найти страницу. Однако, если я сам введу адрес в браузер, он сработает. - person Selida; 15.06.2015
comment
каков ваш src рендеринг после вышеупомянутого решения? - person viral; 15.06.2015
comment
Просто медиаплеер - person Selida; 15.06.2015

function view ($settings, $screen )
{
  $url = base_url()
    $view = "<video width='100%' height='100%' controls>
                <source src=".$url."'assets/video/Arrow.mp4' type='video/mp4'>
                 Your browser does not support the video tag.</video>";
    return $view;
}

Поместите все видео вне папки приложения. и перезвоните.

Таким образом, ваша папка Structurer изменится, как

  1. заявление
  2. assets
    • video
    • css
    • JS
    • картинки
  3. система
  4. index.php
  5. .htacess

Дополнительное примечание:

в config.php

$config['base_url'] = '';
$config['index_page'] = '';
person Abdulla Nilam    schedule 15.06.2015
comment
Я только что попробовал это, как вы предложили, однако это все еще не работает - person Selida; 15.06.2015
comment
проверить с return $view; - person Abdulla Nilam; 15.06.2015
comment
Я знаю, что return $view работает, поскольку на странице отображается медиаплеер. Просто видеофайл не воспроизводится. (Это то, о чем вы спрашивали?) - person Selida; 15.06.2015
comment
без контроллера вы можете воспроизводить видео в поле зрения. <video width='100%' height='100%' controls><source src="<?php echo base_url(); ?>'assets/video/Arrow.mp4" type='video/mp4'>Your browser does not support the video tag.</video> - person Abdulla Nilam; 15.06.2015
comment
Я попробовал <source src="<?php echo base_url(); ?>'assets/video/Arrow.mp4" type='video/mp4'>, но он вообще не работает, ни медиаплеера, ничего. - person Selida; 15.06.2015
comment
Нет, это хорошо работает в моем коде. Проверьте, не смешаны ли ваши имена с заглавными и строчными буквами - person Abdulla Nilam; 15.06.2015
comment
Мне удалось заставить его работать вне codeigniter, но с той же файловой структурой. Внутри codeigniter я все еще не могу заставить его работать. Я даже пытался скопировать ваш код непосредственно из приведенного выше и вставить его в файл, но все равно не повезло. Я проверил имена файлов и каталогов. - person Selida; 15.06.2015
comment
Вы можете показать видео прямо в вашем представлении. Почему вы используете контроллер, чтобы показать это?? - person Abdulla Nilam; 15.06.2015
comment
Это часть системы виджетов/шаблонов. Виджеты являются содержимым шаблонов, а шаблоны определяют вид. Я пытаюсь создать видео-виджет для этого веб-приложения. - person Selida; 15.06.2015

Что мне нужно сделать, так это создать каталог assets/video/ в корне проекта.

<video controls loop>
<source src="assets/video/videofile.mp4" type="video/mp4">
Your browser does not support HTML5 video.
</video>

В частности, ссылаясь на папку с ресурсами как на «активы», а не как на C:/xampp/htdocs/projectfolder/assets/video/". Если я укажу полный путь, это НЕ сработает.

person Garrett    schedule 20.08.2019