You don't need to specify links to video or audio in the player's connection code or playlist, but pass them to the player each time before starting a new file. To do this, just specify the name of the JS function or variable with js: at the beginning instead of the reference.
var player = new Playerjs({id:"player", file:"js:GetFile()"});
In this example, the player will request your JS GetFile function, which will return a link to the file to play.
If you plan to use AJAX inside this function, please use the synchronous request.
function GetFile(id){
let url;
let xhr = new XMLHttpRequest();
xhr.open('GET', 'script.php?id='+id, false);
xhr.onreadystatechange = function() {
url = xhr.responseText;
}
xhr.send();
return url;
}
Similarly you can use this method in playlists:
var player = new Playerjs({id:"player",file:[{"title":"1","file":"js:GetFile(1)"},{"title":"2","file":"js:GetFile(2)"}]});
You can also use this method of specifying the source for subtitles (since version 20).