【问题标题】:Trouble with currentTime when relative path used使用相对路径时 currentTime 出现问题
【发布时间】:2019-05-02 09:35:07
【问题描述】:

我正在创建一个自制的 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;

  }

}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 2016-01-08
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2016-07-10
      相关资源
      最近更新 更多