Skip to content

Commit

Permalink
録画状態チェック機能追加
Browse files Browse the repository at this point in the history
  • Loading branch information
rynan4818 committed Apr 25, 2021
1 parent 9a82cd2 commit 1aeed11
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@
const obs_fail_scene_name = 'BS-Fail'; //Fail(フェイル)用終了シーン名 ※使用時はobs_fail_scene_durationの設定要
const obs_pause_scene_duration = 0; //Pause(ポーズ)してメニューに戻る場合にメニューシーンに切替わる前に終了シーンを表示する時間(秒単位) [0の場合は無効]
const obs_pause_scene_name = 'BS-Pause'; //Pause(ポーズ)用終了シーン名 ※使用時はobs_pause_scene_durationの設定
const obs_recording_check = false; //[true/false]trueにするとゲームシーン開始時に録画状態をチェックする。
const obs_not_rec_sound = 'file:///C://Windows//Media//Windows%20Notify%20Calendar.wav' //ゲームシーン開始時に録画されていない場合に鳴らす音(適当な音声ファイルをブラウザに貼り付けて、アドレス欄のURLをコピーする)


6. あとは通常通りStreamlabs OBSで記録・配信すればOKです。

Expand Down
21 changes: 20 additions & 1 deletion js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
const ConnectEvent = 1,
StreamingStatusEvent = 2,
StreamingStatusChangedEvent = 3,
ScenesEvent = 4;
ScenesEvent = 4,
RecordingCheckEvent = 5;

class StreamlabsOBSClient {

Expand Down Expand Up @@ -39,6 +40,12 @@ class StreamlabsOBSClient {
const data = JSON.parse(message.data);

switch (data.id) {
case RecordingCheckEvent:
this.recordStatus = data.result.recordingStatus;
if (this.recordStatus !== 'recording') {
not_rec_audio.play();
}
break;
case ConnectEvent:
if (data.error !== undefined) {
this.handleError(data.error.message)
Expand Down Expand Up @@ -90,6 +97,14 @@ class StreamlabsOBSClient {
subscribe(event) {
let message;
switch (event) {
case "recording_check":
message = {
id: RecordingCheckEvent,
jsonrpc: '2.0',
method: 'getModel',
params: { resource: 'StreamingService' },
}
break
case "streaming":
message = {
id: StreamingStatusChangedEvent,
Expand Down Expand Up @@ -183,6 +198,10 @@ class StreamlabsOBSClient {
getScenes() {
return this.scenes;
}

recording_check() {
this.subscribe("recording_check");
}

}

Expand Down
9 changes: 9 additions & 0 deletions js/obs-control.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ const obs_fail_scene_duration = 0; //Fail(フェイル)時にメニ
const obs_fail_scene_name = 'BS-Fail'; //Fail(フェイル)用終了シーン名 ※使用時はobs_fail_scene_durationの設定要
const obs_pause_scene_duration = 0; //Pause(ポーズ)してメニューに戻る場合にメニューシーンに切替わる前に終了シーンを表示する時間(秒単位) [0の場合は無効]
const obs_pause_scene_name = 'BS-Pause'; //Pause(ポーズ)用終了シーン名 ※使用時はobs_pause_scene_durationの設定
const obs_recording_check = false; //[true/false]trueにするとゲームシーン開始時に録画状態をチェックする。
const obs_not_rec_sound = 'file:///C://Windows//Media//Windows%20Notify%20Calendar.wav' //ゲームシーン開始時に録画されていない場合に鳴らす音(適当な音声ファイルをブラウザに貼り付けて、アドレス欄のURLをコピーする)

let now_scene;
let bs_menu_flag = true;
let end_event = '';
let obs;
const not_rec_audio = new Audio(obs_not_rec_sound);

const client = new StreamlabsOBSClient({
port: obs_port,
Expand All @@ -28,6 +31,11 @@ const client = new StreamlabsOBSClient({

client.connect();

function recording_check() {
if (!obs_recording_check) return;
client.recording_check();
}

function scene_change(name) {
if (name != now_scene) client.changeScene(name);
now_scene = name;
Expand All @@ -53,6 +61,7 @@ function start_scene_change() {
function op_songStart(data) {
end_event = '';
if (bs_menu_flag) {
recording_check()
if (obs_game_event_delay > 0) {
setTimeout(start_scene_change, obs_game_event_delay);
} else {
Expand Down

0 comments on commit 1aeed11

Please sign in to comment.