Я использую mediaelement player, и я хочу динамически установить текущее время (откуда начинается песня).Почему я получаю бесконечный цикл для этого кода?
Если я это сделать, как это работает отлично:
mediaElement.setCurrentTime(22);
(так песня начнется со второго 22-го).
Если я хочу, чтобы динамически установить начало от, как:
var cur_time = new Date().getTime();
var songToStartFrom = (cur_time - song.startTime)/(1000);
mediaElement.setCurrentTime(songToStartFrom);
его вдаваясь в бесконечный цикл. (Я очень уверен, что songToStartFrom прекрасен за считанные секунды)
Я просто не понимаю, почему он работает для статических значений, но для динамических нет?
ОБНОВЛЕНИЕ: весь код здесь
player = new MediaElementPlayer('#ui_audio', {
features: ['playpause'],
audioWidth: 30,
audioHeight: 30,
success: function (mediaElement, domObject) {
// Player is ready
mediaElement.addEventListener('canplay', function() {
var cur_time = new Date().getTime();
console.log("--current time: " + cur_time);
console.log("--song time: " + song.startTime);
console.log("--media elem time: " + (cur_time - song.startTime)/(1000));
var songToStartFrom = (cur_time - song.startTime)/(1000);
console.log("DURATION: " + mediaElement.duration);
mediaElement.setCurrentTime(22);
mediaElement.play();
}, false);
mediaElement.addEventListener('playing', function() {
//pushListenerInfo();
});
mediaElement.addEventListener('pause', function() {
//removeListenerInfo();
});
mediaElement.addEventListener('ended', function() {
//removeListenerInfo();
});
}
});
Пример бесконечного выхода:
listen-moment.js:31 --current time: 1428777176774
listen-moment.js:32 --song time: 1428777166000
listen-moment.js:33 --media elem time: 10.774
listen-moment.js:35 DURATION: 29.875625
listen-moment.js:31 --current time: 1428777176779
listen-moment.js:32 --song time: 1428777166000
listen-moment.js:33 --media elem time: 10.779
listen-moment.js:35 DURATION: 29.875625
listen-moment.js:31 --current time: 1428777176784
listen-moment.js:32 --song time: 1428777166000
listen-moment.js:33 --media elem time: 10.784
listen-moment.js:35 DURATION: 29.875625
listen-moment.js:31 --current time: 1428777176788
listen-moment.js:32 --song time: 1428777166000
listen-moment.js:33 --media elem time: 10.788
listen-moment.js:35 DURATION: 29.875625
listen-moment.js:31 --current time: 1428777176795
listen-moment.js:32 --song time: 1428777166000
listen-moment.js:33 --media elem time: 10.795
Пример конечного выхода (и игрок начинает играть отлично):
--current time: 1428777382847
listen-moment.js:32 --song time: 1428777376000
listen-moment.js:33 --media elem time: 6.847
listen-moment.js:35 DURATION: 29.875625
Где находится петля? Вы пробовали отладку? –
@IlyaKogan Эти 4 консольные строки печатаются бесконечно, если я заменяю 22 на songToStartFrom. –
Что делает 'console.log (song.startTime);' показывает ???? – Manwal