我需要切换场景并通过第三方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
请求不工作
1条答案
按热度按时间cu6pst1q1#
这不是对你的问题的确切回答,我认为WebSocket API似乎不再支持这种活动了(见https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requests)你有没有想过解决这个问题的不同方法:
你可以使用node和express + socket.io来做web应用程序,然后提供空的(透明的)网页,使用JavaScript和标签来播放音频,并将页面添加为浏览器源。