使用相对路径时,currentTime出现问题

时间:2019-05-02 09:35:07

标签: javascript jquery laravel html5-video html5-audio

我正在创建一个自制的js播放器,以将桌子上的某些音频/视频播放到自定义播放器(如Laravel网站)。单击表格上的元素时,将播放器设置在正确的音频/视频文件上的位置。 问题:设置currentTime链接到音频/视频文件的原因。

如果我使用完整的链接,则我的代码可以完美运行。 如果使用相对链接,我的代码会遇到麻烦。 但是,由于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 :(得分:0)

我终于找到了另一个解决方案: 我修改了访问文件的路径,我的文件位于“ public”文件夹中的“ files”文件夹中。该通配符将返回文件(如果存在),否则返回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','.*');