parent
9a0146b04e
commit
6f67f515b2
@ -144,10 +144,14 @@ def playingmusic(did: str = "", Verifcation=Depends(verification)):
|
|||||||
|
|
||||||
is_playing = xiaomusic.isplaying(did)
|
is_playing = xiaomusic.isplaying(did)
|
||||||
cur_music = xiaomusic.playingmusic(did)
|
cur_music = xiaomusic.playingmusic(did)
|
||||||
|
# 播放进度
|
||||||
|
offset,duration = xiaomusic.get_offset_duration(did)
|
||||||
return {
|
return {
|
||||||
"ret": "OK",
|
"ret": "OK",
|
||||||
"is_playing": is_playing,
|
"is_playing": is_playing,
|
||||||
"cur_music": cur_music,
|
"cur_music": cur_music,
|
||||||
|
"offset": offset,
|
||||||
|
"duration": duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,6 +23,9 @@ $(function(){
|
|||||||
append_op_button_name("30分钟后关机");
|
append_op_button_name("30分钟后关机");
|
||||||
append_op_button_name("60分钟后关机");
|
append_op_button_name("60分钟后关机");
|
||||||
|
|
||||||
|
var offset = 0;
|
||||||
|
var duration = 0;
|
||||||
|
|
||||||
// 拉取现有配置
|
// 拉取现有配置
|
||||||
$.get("/getsetting", function(data, status) {
|
$.get("/getsetting", function(data, status) {
|
||||||
console.log(data, status);
|
console.log(data, status);
|
||||||
@ -271,7 +274,26 @@ $(function(){
|
|||||||
} else {
|
} else {
|
||||||
$("#playering-music").text(`【空闲中】 ${data.cur_music}`);
|
$("#playering-music").text(`【空闲中】 ${data.cur_music}`);
|
||||||
}
|
}
|
||||||
|
offset = data.offset;
|
||||||
|
duration = data.duration;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
setInterval(()=>{
|
||||||
|
if (duration > 0) {
|
||||||
|
offset++;
|
||||||
|
$("#progress").val(offset / duration * 100);
|
||||||
|
$("#play-time").text(`${formatTime(offset)}/${formatTime(duration)}`)
|
||||||
|
}else{
|
||||||
|
$("#play-time").text(`${formatTime(0)}/${formatTime(0)}`)
|
||||||
|
}
|
||||||
|
},1000)
|
||||||
|
function formatTime(seconds) {
|
||||||
|
var minutes = Math.floor(seconds / 60);
|
||||||
|
var remainingSeconds =Math.floor(seconds % 60);
|
||||||
|
return `${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,6 +44,10 @@ var vConsole = new window.VConsole();
|
|||||||
<datalist id="autocomplete-list"></datalist>
|
<datalist id="autocomplete-list"></datalist>
|
||||||
<input id="music-name" type="text" placeholder="请输入搜索关键词(如:MV高清版 周杰伦 七里香)" list="autocomplete-list"></input>
|
<input id="music-name" type="text" placeholder="请输入搜索关键词(如:MV高清版 周杰伦 七里香)" list="autocomplete-list"></input>
|
||||||
<input id="music-filename" type="text" placeholder="请输入保存为的文件名称(如:周杰伦七里香)"></input>
|
<input id="music-filename" type="text" placeholder="请输入保存为的文件名称(如:周杰伦七里香)"></input>
|
||||||
|
<div style="display: flex; align-items: center">
|
||||||
|
<progress id="progress" value="0" max="100" style="width: 270px"></progress>
|
||||||
|
<div id="play-time" style="margin-left: 10px">00:00/00:00</div>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button id="play">播放</button>
|
<button id="play">播放</button>
|
||||||
<div id="playering-music" class="text"></div>
|
<div id="playering-music" class="text"></div>
|
||||||
|
@ -805,6 +805,9 @@ class XiaoMusic:
|
|||||||
self.log.debug(f"playingmusic. cur_music:{cur_music}")
|
self.log.debug(f"playingmusic. cur_music:{cur_music}")
|
||||||
return cur_music
|
return cur_music
|
||||||
|
|
||||||
|
def get_offset_duration(self, did):
|
||||||
|
return self.devices[did].get_offset_duration()
|
||||||
|
|
||||||
# 当前是否正在播放歌曲
|
# 当前是否正在播放歌曲
|
||||||
def isplaying(self, did):
|
def isplaying(self, did):
|
||||||
return self.devices[did].isplaying()
|
return self.devices[did].isplaying()
|
||||||
@ -865,6 +868,8 @@ class XiaoMusic:
|
|||||||
|
|
||||||
# 重新初始化
|
# 重新初始化
|
||||||
async def reinit(self, **kwargs):
|
async def reinit(self, **kwargs):
|
||||||
|
for handler in self.log.handlers:
|
||||||
|
handler.close()
|
||||||
self.setup_logger()
|
self.setup_logger()
|
||||||
await self.init_all_data(self.session)
|
await self.init_all_data(self.session)
|
||||||
self._gen_all_music_list()
|
self._gen_all_music_list()
|
||||||
@ -923,6 +928,10 @@ class XiaoMusicDevice:
|
|||||||
self._next_timer = None
|
self._next_timer = None
|
||||||
self._timeout = 0
|
self._timeout = 0
|
||||||
self._playing = False
|
self._playing = False
|
||||||
|
# 播放进度
|
||||||
|
self._start_time = 0
|
||||||
|
self._duration = 0
|
||||||
|
|
||||||
# 关机定时器
|
# 关机定时器
|
||||||
self._stop_timer = None
|
self._stop_timer = None
|
||||||
self._last_cmd = None
|
self._last_cmd = None
|
||||||
@ -931,6 +940,13 @@ class XiaoMusicDevice:
|
|||||||
def get_cur_music(self):
|
def get_cur_music(self):
|
||||||
return self.device.cur_music
|
return self.device.cur_music
|
||||||
|
|
||||||
|
def get_offset_duration(self):
|
||||||
|
if not self._playing:
|
||||||
|
return -1, -1
|
||||||
|
offset = time.time() - self._start_time
|
||||||
|
duration = self._duration
|
||||||
|
return offset, duration
|
||||||
|
|
||||||
# 初始化播放列表
|
# 初始化播放列表
|
||||||
def update_playlist(self):
|
def update_playlist(self):
|
||||||
if self.device.cur_playlist not in self.xiaomusic.music_list:
|
if self.device.cur_playlist not in self.xiaomusic.music_list:
|
||||||
@ -1056,6 +1072,8 @@ class XiaoMusicDevice:
|
|||||||
self.log.info(f"【{name}】不会设置下一首歌的定时器")
|
self.log.info(f"【{name}】不会设置下一首歌的定时器")
|
||||||
return
|
return
|
||||||
sec = sec + self.config.delay_sec
|
sec = sec + self.config.delay_sec
|
||||||
|
self._start_time = time.time()
|
||||||
|
self._duration = sec
|
||||||
await self.set_next_music_timeout(sec)
|
await self.set_next_music_timeout(sec)
|
||||||
self.xiaomusic.save_cur_config()
|
self.xiaomusic.save_cur_config()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user