Obs-Browser introduit une source de navigateur multiplateforme, alimentée par CEF (Framework Embedded Chromium), à OBS Studio. Une source de navigateur permet à l'utilisateur d'intégrer des superpositions Web dans ses scènes, avec un accès complet aux API Web modernes.
De plus, Obs-Browser permet l'intégration de service (liant les services tiers) et les quais de navigateur (pages Web chargées dans l'interface elle-même) sur toutes les plates-formes prises en charge, à l'exception de Wayland (Linux).
Ce plugin est inclus par défaut sur les packages officiels sur Windows, MacOS, Ubuntu PPA et le FlatPak officiel (la plupart des distributions Linux).
Obs-Browser fournit un objet global qui permet d'accéder à certaines fonctionnalités spécifiques de l'OBS de JavaScript. Cela peut être utilisé pour créer une superposition qui s'adapte dynamiquement aux changements dans l'OBS.
Si vous utilisez TypeScript, les définitions de type pour les liaisons obscurcisseur sont disponibles via NPM et YARN.
# npm
npm install --save-dev @types/obs-studio
# yarn
yarn add --dev @types/obs-studio
/**
* @returns {string} OBS Browser plugin version
*/
window . obsstudio . pluginVersion
// => 2.17.0
/**
* @callback EventListener
* @param {CustomEvent} event
*/
/**
* @param {string} type
* @param {EventListener} listener
*/
window . addEventListener ( 'obsSceneChanged' , function ( event ) {
var t = document . createTextNode ( event . detail . name )
document . body . appendChild ( t )
} )
Des descriptions de ces événements peuvent être trouvées ici.
Autorisations requises: aucun
/**
* @typedef {number} Level - The level of permissions. 0 for NONE, 1 for READ_OBS (OBS data), 2 for READ_USER (User data), 3 for BASIC, 4 for ADVANCED and 5 for ALL
*/
/**
* @callback LevelCallback
* @param {Level} level
*/
/**
* @param {LevelCallback} cb - The callback that receives the current control level.
*/
window . obsstudio . getControlLevel ( function ( level ) {
console . log ( level )
} )
Autorisations requises: read_obs
/**
* @typedef {Object} Status
* @property {boolean} recording - not affected by pause state
* @property {boolean} recordingPaused
* @property {boolean} streaming
* @property {boolean} replaybuffer
* @property {boolean} virtualcam
*/
/**
* @callback StatusCallback
* @param {Status} status
*/
/**
* @param {StatusCallback} cb - The callback that receives the current output status of OBS.
*/
window . obsstudio . getStatus ( function ( status ) {
console . log ( status )
} )
Autorisations requises: read_user
/**
* @typedef {Object} Scene
* @property {string} name - name of the scene
* @property {number} width - width of the scene
* @property {number} height - height of the scene
*/
/**
* @callback SceneCallback
* @param {Scene} scene
*/
/**
* @param {SceneCallback} cb - The callback that receives the current scene in OBS.
*/
window . obsstudio . getCurrentScene ( function ( scene ) {
console . log ( scene )
} )
Autorisations requises: read_user
/**
* @callback ScenesCallback
* @param {string[]} scenes
*/
/**
* @param {ScenesCallback} cb - The callback that receives the scenes.
*/
window . obsstudio . getScenes ( function ( scenes ) {
console . log ( scenes )
} )
Autorisations requises: read_user
/**
* @callback TransitionsCallback
* @param {string[]} transitions
*/
/**
* @param {TransitionsCallback} cb - The callback that receives the transitions.
*/
window . obsstudio . getTransitions ( function ( transitions ) {
console . log ( transitions )
} )
Autorisations requises: read_user
/**
* @callback TransitionCallback
* @param {string} transition
*/
/**
* @param {TransitionCallback} cb - The callback that receives the transition currently set.
*/
window . obsstudio . getCurrentTransition ( function ( transition ) {
console . log ( transition )
} )
Autorisations requises: Basique
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . saveReplayBuffer ( )
Autorisations requises: avancé
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startReplayBuffer ( )
Autorisations requises: avancé
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopReplayBuffer ( )
Autorisations requises: avancé
/**
* @param {string} name - Name of the scene
*/
window . obsstudio . setCurrentScene ( name )
Autorisations requises: avancé
/**
* @param {string} name - Name of the transition
*/
window . obsstudio . setCurrentTransition ( name )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startStreaming ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopStreaming ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startRecording ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopRecording ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . pauseRecording ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . unpauseRecording ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startVirtualcam ( )
Autorisation requise: tout
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopVirtualcam ( )
Cette méthode est l'héritage. Enregistrez un auditeur d'événements à la place.
/**
* onVisibilityChange gets callbacks when the visibility of the browser source changes in OBS
*
* @deprecated
* @see obsSourceVisibleChanged
* @param {boolean} visibility - True -> visible, False -> hidden
*/
window . obsstudio . onVisibilityChange = function ( visibility ) {
} ;
Cette méthode est l'héritage. Enregistrez un auditeur d'événements à la place.
/**
* onActiveChange gets callbacks when the active/inactive state of the browser source changes in OBS
*
* @deprecated
* @see obsSourceActiveChanged
* @param {bool} True -> active, False -> inactive
*/
window . obsstudio . onActiveChange = function ( active ) {
} ;
Obs-Browser comprend l'intégration avec les demandes du fournisseur d'Obs-WebSocket. Le nom du vendeur à utiliser est obs-browser
et les demandes disponibles sont:
emit_event
- prend event_name
et? Paramètres event_data
. Émet un événement personnalisé à toutes les sources de navigateur. Pour vous abonner aux événements, voir iciIl n'y a pas d'événements de fournisseurs disponibles pour le moment.
Le navigateur Obs ne peut pas être construit autonome. Il est construit dans le cadre de l'OBS Studio.
En suivant les instructions, cela permettra aux quais du navigateur de navigateur et de navigateur personnalisé sur les trois plates-formes. BUILD_BROWSER
et CEF_ROOT_DIR
sont nécessaires.
Suivez les instructions de construction et assurez-vous de télécharger l' emballage CEF et de définir CEF_ROOT_DIR
dans CMake pour pointer vers l'emballage extrait.
Utilisez le script Full Build MacOS. Cela téléchargera et activera automatiquement le navigateur OBS.
Suivez les instructions de construction et choisissez l'option "IF Building with Browser Source". Cela inclut les étapes pour télécharger / extraire l'emballage CEF et définir les variables CMake requises.