يقدم Obs-Browser مصدرًا للمتصفح عبر المنصات ، مدعومًا من CEF (إطار chromium المدمج) ، إلى استوديو OBS. يسمح مصدر المتصفح للمستخدم بدمج التراكبات المستندة إلى الويب في مشاهدهم ، مع وصول كامل إلى واجهات برمجة تطبيقات الويب الحديثة.
بالإضافة إلى ذلك ، يتيح Obs-Browser تكامل الخدمة (ربط خدمات الطرف الثالث) وأرصفة المتصفح (صفحات الويب المحملة في الواجهة نفسها) على جميع المنصات المدعومة ، باستثناء Wayland (Linux).
يتم تضمين هذا البرنامج المساعد افتراضيًا على الحزم الرسمية على Windows و MacOs و Ubuntu PPA و Flatpak الرسمي (معظم توزيعات Linux).
يوفر Obs-Browser كائنًا عالميًا يسمح بالوصول إلى بعض الوظائف الخاصة بـ OBS من JavaScript. يمكن استخدام هذا لإنشاء تراكب يتكيف ديناميكيًا للتغييرات في OBS.
إذا كنت تستخدم TypeScript ، فاكتب تعريفات روابط Obs-Browser من خلال NPM والغزل.
# 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 )
} )
يمكن العثور على أوصاف لهذه الأحداث هنا.
الأذونات المطلوبة: لا شيء
/**
* @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 )
} )
الأذونات المطلوبة: 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 )
} )
الأذونات المطلوبة: 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 )
} )
الأذونات المطلوبة: read_user
/**
* @callback ScenesCallback
* @param {string[]} scenes
*/
/**
* @param {ScenesCallback} cb - The callback that receives the scenes.
*/
window . obsstudio . getScenes ( function ( scenes ) {
console . log ( scenes )
} )
الأذونات المطلوبة: read_user
/**
* @callback TransitionsCallback
* @param {string[]} transitions
*/
/**
* @param {TransitionsCallback} cb - The callback that receives the transitions.
*/
window . obsstudio . getTransitions ( function ( transitions ) {
console . log ( transitions )
} )
الأذونات المطلوبة: 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 )
} )
الأذونات المطلوبة: أساسية
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . saveReplayBuffer ( )
الأذونات المطلوبة: متقدم
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startReplayBuffer ( )
الأذونات المطلوبة: متقدم
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopReplayBuffer ( )
الأذونات المطلوبة: متقدم
/**
* @param {string} name - Name of the scene
*/
window . obsstudio . setCurrentScene ( name )
الأذونات المطلوبة: متقدم
/**
* @param {string} name - Name of the transition
*/
window . obsstudio . setCurrentTransition ( name )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startStreaming ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopStreaming ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startRecording ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopRecording ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . pauseRecording ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . unpauseRecording ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . startVirtualcam ( )
الأذونات المطلوبة: الكل
/**
* Does not accept any parameters and does not return anything
*/
window . obsstudio . stopVirtualcam ( )
هذه الطريقة هي إرث. قم بتسجيل مستمع حدث بدلاً من ذلك.
/**
* 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 ) {
} ;
هذه الطريقة هي إرث. قم بتسجيل مستمع حدث بدلاً من ذلك.
/**
* 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 التكامل مع طلبات البائعين في Obs-Websocket. اسم البائع المراد استخدامه هو obs-browser
، والطلبات المتاحة هي:
emit_event
- يأخذ event_name
و؟ event_data
معلمات. ينبعث من حدث مخصص لجميع مصادر المتصفح. للاشتراك في الأحداث ، انظر هنالا توجد أحداث بائع متاحة في هذا الوقت.
لا يمكن بناء متصفح OBS مستقلة. تم تصميمه كجزء من استوديو OBS.
باتباع الإرشادات ، سيمكّن ذلك من مصدر المتصفح وأرصفة المتصفح المخصص على جميع المنصات الثلاثة. كل من BUILD_BROWSER
و CEF_ROOT_DIR
مطلوبان.
اتبع تعليمات الإنشاء وتأكد من تنزيل Wrapper CEF وتعيين CEF_ROOT_DIR
في CMAKE للإشارة إلى الغلاف المستخرج.
استخدم برنامج MacOS الكامل للبناء. سيؤدي ذلك تلقائيًا إلى تنزيل وتمكين متصفح OBS.
اتبع تعليمات الإنشاء واختر خيار "If Building with Browser Source". يتضمن ذلك خطوات لتنزيل/استخراج غلاف CEF ، وتعيين متغيرات CMAKE المطلوبة.