Я пытаюсь запустить DZ-плеер при загрузке страницы, который будет воспроизводить мой поток напрямую.
Я могу инициализировать плеер, войти в систему, загрузить треки в плеер с помощью DZ.player.playTracks()
, ноэто фактически не начинает играть песни (как это должно).
DZ.player.isPlaying()
- это undefined
после вызова DZ.player.playTracks()
.
Мне нужно один раз вручную нажать кнопку воспроизведения (в виджете, загруженном Deezer), прежде чем я смогу использоватьМетоды DZ.player.play()
, DZ.player.pause()
или DZ.player.playTracks()
.
В итоге моя цель - использовать скрытого игрока, поэтому у меня не будет возможности нажать на кнопку этого виджета.
У меня есть некоторые ошибки в консоли, подобные этой (не уверен, что это связано):
Директива политики безопасности контента «upgrade-insecure-запросы» игнорируется при доставке в политике только для отчетов.
Директива Content Security Policy 'upgrade-insecure-запросы' игнорируется при доставке в политике только для отчетов. player.php? channel = http://localhost:8080/dz-custom/channel.html&app_id=1234XXXX&emptyPlayer=true:1
РЕДАКТИРОВАТЬ: Вот код, который я использую с ( player_invisible.html )
<!DOCTYPE html>
.progressbarplay {
cursor:pointer;overflow: hidden;height: 8px;margin-bottom: 8px;background-color: #F7F7F7;background-image: -moz-linear-gradient(top,whiteSmoke,#F9F9F9);background-image: -ms-linear-gradient(top,whiteSmoke,#F9F9F9);background-image: -webkit-gradient(linear,0 0,0 100%,from(whiteSmoke),to(#F9F9F9));background-image: -webkit-linear-gradient(top,whiteSmoke,#F9F9F9);background-image: -o-linear-gradient(top,whiteSmoke,#F9F9F9);background-image: linear-gradient(top,whiteSmoke,#F9F9F9);background-repeat: repeat-x;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;
}
.progressbarplay .bar {
cursor:pointer;background: #4496C6;width: 0;height: 8px;color: white;font-size: 12px;text-align: center;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;-webkit-transition: width .6s ease;-moz-transition: width .6s ease;-ms-transition: width .6s ease;-o-transition: width .6s ease;transition: width .6s ease;
}
$(document).ready(function(){
$("#controlers input").attr('disabled', true);
$("#slider_seek").click(function(evt,arg){
var left = evt.offsetX;
console.log(evt.offsetX, $(this).width(), evt.offsetX/$(this).width());
DZ.player.seek((evt.offsetX/$(this).width()) * 100);
});
});
function event_listener_append() {
var pre = document.getElementById('event_listener');
var line = [];
for (var i = 0; i < arguments.length; i++) {
line.push(arguments[i]);
}
pre.innerHTML += line.join(' ') + "\n";
}
//get token
var utoken = Cookies.get('utoken');
console.log(utoken);
function onPlayerLoaded() {
$("#controlers input").attr('disabled', false);
event_listener_append('player_loaded');
DZ.Event.subscribe('current_track', function(arg){
event_listener_append('current_track', arg.index, arg.track.title, arg.track.album.title);
});
DZ.Event.subscribe('player_position', function(arg){
event_listener_append('position', arg[0], arg[1]);
$("#slider_seek").find('.bar').css('width', (100*arg[0]/arg[1]) + '%');
});
DZ.Event.subscribe('track_end', function() {
event_listener_append('track_end');
});
}
function login() {
DZ.login(function (response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
DZ.api('/user/me', function (response) {
console.log('Good to see you, ' + response.name + '.');
});
utoken = response.authResponse.accessToken;
Cookies.set('utoken', utoken)
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, { perms: 'email, manage_library,offline_access' });
};
document.addEventListener('DOMContentLoaded', function() {
DZ.init({
appId : 'MY_APP_ID',
channelUrl : 'http://localhost:8080/dz-custom/channel.html',
player : {
onload : onPlayerLoaded
}
});
DZ.ready(function(sdk_options){
if(!utoken || utoken== "null") {
console.log('not logged');
login();
} else {
console.log("player ready");
DZflow('start');
}
});
});
function DZflow(fn){
DZ.api('/user/MY_USER_ID/flow', 'GET',{access_token: utoken},function (response) {
console.log(response);
playMode = "flow";
trackArr = response.data;
var trackIds = trackArr.map(obj => {
var rObj = [];
rObj.push(obj['id']);
return rObj;
});
switch(fn){
case 'start':
console.log('Starting flow');
DZ.player.playTracks(trackIds);
break;
case 'add':
console.log('Adding songs to flow');
DZ.player.addToQueue(trackIds);
break;
default:
DZ.player.playTracks(trackIds);
console.log('unknown DZflow fn',fn)
}
}
);
}
event_listener :
Кто-нибудь сталкивался с этой проблемой? Я что-то упустил в процессе инициализации проигрывателя?