我正在创建一个自制的 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
。
(我设置一个布尔值VAR,因为它在这个回来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;
}
}
我终于找到了另一个解决方案:我修改了路径以访问文件,我的文件位于“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','.*');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句