/ws - WebSocket 连接统一事件格式: 所有 WebSocket 和 SSE 推送的消息均使用 {"type": "事件名", "data": 载荷}格式。
所有事件无数据时data均为{}(空对象)。
下游客户端统一按msg.type分发,msg.data读取载荷即可。
status_update - 状态更新{
"type": "status_update",
"data": {
"status": "playing",
"detail": "告白 - 花澤香菜"
}
}"waiting_process" - K歌客户端未启动,等待用户运行 WeSing.exe"loading" - 歌曲加载中,detail为歌曲名称"playing" - 播放中,detail为歌曲标题(格式: 歌曲名 - 歌手)"paused" - 暂停中(play_time 停止推进时自动检测),detail为歌曲标题"waiting_song" - K歌窗口未打开/焦点丢失,等待用户打开或点击K歌窗口"standby" - 待机状态,K歌客户端已退出{
"type": "status_update",
"data": {}
}song_info_update - 歌曲信息更新{
"type": "song_info_update",
"data": {
"name": "告白",
"singer": "花澤香菜",
"title": "告白 - 花澤香菜"
}
}{
"type": "song_info_update",
"data": {}
}data: {} 清空歌曲信息lyric_update - 实时歌词更新{
"type": "lyric_update",
"data": {
"line_index": 5,
"text": "君に嘘をついていた",
"timestamp": 9.0,
"play_time": 9.15,
"progress": 0.4167
}
}{
"type": "lyric_update",
"data": {}
}data: {} 清空歌词data: {} 时应清空显示的歌词内容all_lyrics - 完整歌词列表{
"type": "all_lyrics",
"data": {
"song_title": "告白 - 花澤香菜",
"duration": 236.0,
"play_time": 1.2,
"count": 12,
"lyrics": [
{"index": 0, "time": 0.5, "text": "いつもそばにいるのに"},
{"index": 1, "time": 2.1, "text": "ふと気付くと遠すぎて"},
{"index": 2, "time": 3.8, "text": "手を伸ばしても届かない"}
...
]
}
}{
"type": "all_lyrics",
"data": {}
}lyric_idle - 空闲消息(歌曲播放结束){
"type": "lyric_idle",
"data": {}
}注: lyric_idle仅在歌曲播放完毕后发送,data始终为{}。
playback_pause - 暂停播放{
"type": "playback_pause",
"data": {
"play_time": 45.2
}
}playback_resume - 恢复播放