mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
Usharp Video Sync
This commit is contained in:
@@ -221,6 +221,7 @@ namespace VRCX
|
|||||||
ParseLogVideoError(fileInfo, logContext, line, offset) == true ||
|
ParseLogVideoError(fileInfo, logContext, line, offset) == true ||
|
||||||
ParseLogVideoChange(fileInfo, logContext, line, offset) == true ||
|
ParseLogVideoChange(fileInfo, logContext, line, offset) == true ||
|
||||||
ParseLogUsharpVideoPlay(fileInfo, logContext, line, offset) == true ||
|
ParseLogUsharpVideoPlay(fileInfo, logContext, line, offset) == true ||
|
||||||
|
ParseLogUsharpVideoSync(fileInfo, logContext, line, offset) == true ||
|
||||||
ParseLogWorldVRCX(fileInfo, logContext, line, offset) == true ||
|
ParseLogWorldVRCX(fileInfo, logContext, line, offset) == true ||
|
||||||
ParseLogPhotonId(fileInfo, logContext, line, offset) == true)
|
ParseLogPhotonId(fileInfo, logContext, line, offset) == true)
|
||||||
{
|
{
|
||||||
@@ -639,6 +640,26 @@ namespace VRCX
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool ParseLogUsharpVideoSync(FileInfo fileInfo, LogContext logContext, string line, int offset)
|
||||||
|
{
|
||||||
|
// 2022.01.16 05:20:23 Log - [USharpVideo] Syncing video to 2.52
|
||||||
|
|
||||||
|
if (string.Compare(line, offset, "[USharpVideo] Syncing video to ", 0, 31, StringComparison.Ordinal) != 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var data = line.Substring(offset + 31);
|
||||||
|
|
||||||
|
AppendLog(new[]
|
||||||
|
{
|
||||||
|
fileInfo.Name,
|
||||||
|
ConvertLogTimeToISO8601(line),
|
||||||
|
"video-sync",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private bool ParseLogNotification(FileInfo fileInfo, LogContext logContext, string line, int offset)
|
private bool ParseLogNotification(FileInfo fileInfo, LogContext logContext, string line, int offset)
|
||||||
{
|
{
|
||||||
// 2021.01.03 05:48:58 Log - [API] Received Notification: < Notification from username:pypy, sender user id:usr_4f76a584-9d4b-46f6-8209-8305eb683661 to of type: friendRequest, id: not_3a8f66eb-613c-4351-bee3-9980e6b5652c, created at: 01/14/2021 15:38:40 UTC, details: {{}}, type:friendRequest, m seen:False, message: ""> received at 01/02/2021 16:48:58 UTC
|
// 2021.01.03 05:48:58 Log - [API] Received Notification: < Notification from username:pypy, sender user id:usr_4f76a584-9d4b-46f6-8209-8305eb683661 to of type: friendRequest, id: not_3a8f66eb-613c-4351-bee3-9980e6b5652c, created at: 01/14/2021 15:38:40 UTC, details: {{}}, type:friendRequest, m seen:False, message: ""> received at 01/02/2021 16:48:58 UTC
|
||||||
|
|||||||
@@ -8008,6 +8008,12 @@ speechSynthesis.getVoices();
|
|||||||
this.lastVideoUrl = gameLog.videoUrl;
|
this.lastVideoUrl = gameLog.videoUrl;
|
||||||
this.addGameLogVideo(gameLog, location, userId);
|
this.addGameLogVideo(gameLog, location, userId);
|
||||||
return;
|
return;
|
||||||
|
case 'video-sync':
|
||||||
|
var timestamp = gameLog.timestamp.replace(/,/g, '');
|
||||||
|
if (this.nowPlaying.playing) {
|
||||||
|
this.nowPlaying.offset = parseInt(timestamp, 10);
|
||||||
|
}
|
||||||
|
return;
|
||||||
case 'api-request':
|
case 'api-request':
|
||||||
var bias = Date.parse(gameLog.dt) + 60 * 1000;
|
var bias = Date.parse(gameLog.dt) + 60 * 1000;
|
||||||
if (!this.isGameRunning || bias < Date.now()) {
|
if (!this.isGameRunning || bias < Date.now()) {
|
||||||
@@ -9198,10 +9204,6 @@ speechSynthesis.getVoices();
|
|||||||
videoLength = this.convertYoutubeTime(
|
videoLength = this.convertYoutubeTime(
|
||||||
data.items[0].contentDetails.duration
|
data.items[0].contentDetails.duration
|
||||||
);
|
);
|
||||||
if (videoLength) {
|
|
||||||
// add loading time
|
|
||||||
videoLength += 15;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
@@ -9395,6 +9397,7 @@ speechSynthesis.getVoices();
|
|||||||
name: '',
|
name: '',
|
||||||
length: 0,
|
length: 0,
|
||||||
startTime: 0,
|
startTime: 0,
|
||||||
|
offset: 0,
|
||||||
elapsed: 0,
|
elapsed: 0,
|
||||||
percentage: 0,
|
percentage: 0,
|
||||||
remainingText: '',
|
remainingText: '',
|
||||||
@@ -9407,6 +9410,7 @@ speechSynthesis.getVoices();
|
|||||||
name: '',
|
name: '',
|
||||||
length: 0,
|
length: 0,
|
||||||
startTime: 0,
|
startTime: 0,
|
||||||
|
offset: 0,
|
||||||
elapsed: 0,
|
elapsed: 0,
|
||||||
percentage: 0,
|
percentage: 0,
|
||||||
remainingText: '',
|
remainingText: '',
|
||||||
@@ -9430,7 +9434,8 @@ speechSynthesis.getVoices();
|
|||||||
url: ctx.videoUrl,
|
url: ctx.videoUrl,
|
||||||
name,
|
name,
|
||||||
length: ctx.videoLength,
|
length: ctx.videoLength,
|
||||||
startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos,
|
startTime: Date.parse(ctx.created_at) / 1000,
|
||||||
|
offset: ctx.videoPos,
|
||||||
elapsed: 0,
|
elapsed: 0,
|
||||||
percentage: 0,
|
percentage: 0,
|
||||||
remainingText: ''
|
remainingText: ''
|
||||||
@@ -9439,7 +9444,8 @@ speechSynthesis.getVoices();
|
|||||||
this.nowPlaying = {
|
this.nowPlaying = {
|
||||||
...this.nowPlaying,
|
...this.nowPlaying,
|
||||||
length: ctx.videoLength,
|
length: ctx.videoLength,
|
||||||
startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos,
|
startTime: Date.parse(ctx.created_at) / 1000,
|
||||||
|
offset: ctx.videoPos,
|
||||||
elapsed: 0,
|
elapsed: 0,
|
||||||
percentage: 0,
|
percentage: 0,
|
||||||
remainingText: ''
|
remainingText: ''
|
||||||
@@ -9459,7 +9465,7 @@ speechSynthesis.getVoices();
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var now = Date.now() / 1000;
|
var now = Date.now() / 1000;
|
||||||
np.elapsed = Math.round((now - np.startTime) * 10) / 10;
|
np.elapsed = Math.round((now - np.startTime + np.offset) * 10) / 10;
|
||||||
if (np.elapsed >= np.length) {
|
if (np.elapsed >= np.length) {
|
||||||
this.clearNowPlaying();
|
this.clearNowPlaying();
|
||||||
return;
|
return;
|
||||||
@@ -9647,7 +9653,10 @@ speechSynthesis.getVoices();
|
|||||||
if (this.nowPlaying.playing) {
|
if (this.nowPlaying.playing) {
|
||||||
Discord.SetTimestamps(
|
Discord.SetTimestamps(
|
||||||
Date.now(),
|
Date.now(),
|
||||||
(this.nowPlaying.startTime + this.nowPlaying.length) * 1000
|
(this.nowPlaying.startTime -
|
||||||
|
this.nowPlaying.offset +
|
||||||
|
this.nowPlaying.length) *
|
||||||
|
1000
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,10 @@ class GameLogService {
|
|||||||
gameLog.displayName = args[1];
|
gameLog.displayName = args[1];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'video-sync':
|
||||||
|
gameLog.timestamp = args[0];
|
||||||
|
break;
|
||||||
|
|
||||||
case 'vrcx':
|
case 'vrcx':
|
||||||
gameLog.data = args[0];
|
gameLog.data = args[0];
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user