NodeJS obs-websocket-js播放音频URL

klsxnrf1  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(156)

我需要切换场景并通过第三方url播放音频文件
在此之前,可以这样做

const OBSWebSocket = require('obs-websocket-js');
const obs = new OBSWebSocket();

obs.connect(obsSettings)
   .then(() => {
         obs.send('SetCurrentScene', { 'scene-name': 'YourSceneName' });
         obs.send('PlayAudio', { source: 'YourAudioSourceName', file: url });
             console.log('Audio playback started');
         })
         .catch(err => {
             console.error(`OBS connection error: ${err}`);
  });

字符串
但是现在obs.send命令不起作用,而不是obs.call,假设要更改场景,我需要使用此代码

obs.call('SetCurrentProgramScene', { sceneName: 'YourSceneName' });


但是我如何在obs中播放音频?我找不到当前如何实现这一点
总的来说,我的问题的本质是翻译语音信息中的文本,并在obs中显示
这就是我做事的方式

const voiceUrl = googleTTS.getAudioUrl(response, {
       lang: 'en',
       slow: false,
       host: 'https://translate.google.com',
  });
console.log(`Voice message: ${voiceUrl}`);
playVoice('Voice', voiceUrl);


我得到一个指向此语音消息的链接,然后调用playVoice函数在obs中播放

const OBSWebSocket = require('obs-websocket-js').default;
const obs = new OBSWebSocket();

function playVoice(sourceName, voiceUrl) {
    obs.call('SetCurrentProgramScene', { sceneName: 'Main' });
    obs.call('PlayAudio', { source: sourceName, file: voiceUrl });
}


SetCurrentProgramScene与场景变化的工作原理,因为它应该.但我怎么能通过url播放此音频?PlayAudio请求不工作

cu6pst1q

cu6pst1q1#

这不是对你的问题的确切回答,我认为WebSocket API似乎不再支持这种活动了(见https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requests)你有没有想过解决这个问题的不同方法:
你可以使用node和express + socket.io来做web应用程序,然后提供空的(透明的)网页,使用JavaScript和标签来播放音频,并将页面添加为浏览器源。

相关问题