Проблема с currentTime, когда используется относительный путь - PullRequest
0 голосов
/ 02 мая 2019

Я создаю самодельный js-плеер для воспроизведения аудио / видео со стола на специальный проигрыватель, такой как мой сайт Laravel.При нажатии на элемент на столе, установите плеер на правильные аудио / видео файлы на месте.Проблема: установка текущей причины ссылки на аудио / видео файлы.

Если я использую полную ссылку, мой код работает отлично.Если я использую относительную ссылку, мой код сталкивается с некоторыми проблемами.Но я не могу использовать полную ссылку на моем производственном сервере, потому что маршрут Laravel возвращает 404.

Я пытался использовать событие loadedmetadata, не работает.

Пример:

player_element.currentTime = 448.3

console.log('CT: '+player_element.currentTime)

возвращает CT: 16.352372, почему?

Я пытался использовать событие canplay для настройки currentTime:

  • работапод Firefox и Edge

  • не работает в Chrome!

Журнал консоли Chrome:

возвращает CT: 0.

(я установил логический переменный, потому что он возвращается на currentTime, а canplay и прерывает игру)

player_element = document.createElement('audio');
        player_element.setAttribute('src',media_path+src[divParent.data('currentSrc')].filename);
player_element.setAttribute('preload','metadata');
player_element.load();

let start_player = true;

let start_elt = divParent.data('start_element');

player_element.oncanplay = function(){

if (start_player) {

  if (player_element.currentTime == start_elt) {

   start_player = !start_player;

  }

  player_element.currentTime = start_elt;

  }

}

1 Ответ

0 голосов
/ 02 мая 2019

Наконец-то я нашел другое решение: я изменил маршрут, чтобы иметь доступ к файлам, мои файлы находятся в папке «files» в папке «public».Этот подстановочный знак вернет файл, если он существует, иначе вернет 404.

Route::GET('/public/files/{any}',function($page){
  $page = '../public/files/'.$page;
  // dd('in',$page);
  if (file_exists($page)) {
    return Response::download($page);
  }else {
    abort(404);
  }
})->where('any','.*');
...