Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

live-cat-library

Package Overview
Dependencies
Maintainers
0
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

live-cat-library

This is a component library for [3DCAT](https://www.3dcat.live/)

  • 1.1.6
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
163
increased by106.33%
Maintainers
0
Weekly downloads
 
Created
Source

live-cat-library

This is a component library for 3DCAT

live-cat Launcher

npm bundle size

Features:

  • LauncherUI
  • LauncherPrivateUI
  • Loading Component
  • ImeSwitchComponent
  • FakeImeInputComponent
  • KeepActiveHelper

Technologies

  • live-cat v1.1.8
  • Svelte v3.57.0
  • Rollup v2.78.0
  • Typescript v4.9.5

quick start

instantiation parameter

interface BaseOptionsType {
  address: string // address
  appId?: string // appId
  appKey?: string // appKey
  appSecret?: string // appSecret
  startType?: StartType
  castScreenMaxQty?: number
  castScreenNickname?: string
  castScreenPwd?: string
  isCastScreenMaster?: boolean
  serverIp?: string //for coturn server
  joinType?: ScreenJoinType //only screen
  optionalParam?: string // command line parameters
  exeParameter?: string // command line parameters for privatization
  enableVirtualCamera?: boolean // setup camera enable
}

Options detail to see live-cat

type UIOptions = Options & loadingOptions & ExtendUIOptions

interface loadingOptions {
  loadingImage: string | HTMLImageElement
  loadingBgImage: { portrait: string; landscape: string }
  loadingBarImage: string | HTMLImageElement
  showDefaultLoading: boolean
  showFakePercent: boolean

  phaseChanged: boolean
  percentChanged: boolean
}
interface ExtendUIOptions {
  onChange: (cb: OnChange) => void
  onQueue: (rank: number) => void
  onLoadingError: (err: LoadingError) => void
  onTaskId: (taskId: number) => void
  onShowUserList: (showCastScreenUsers: boolean) => void
  onRunningOptions: (opt: OnRunningOptions) => void
}

interface OnChange {
  phase: Phase
  fakePercent: number
  deltaTime: number
}

type Phase =
  | 'initial'
  | 'signaling-connected'
  | 'node-ready'
  | 'end-candidate'
  | 'peer-connection-connected'
  | 'data-channel-open'
  | 'streaming-ready'
  | 'loaded-metadata'
  | 'streaming-playing'

interface LoadingError {
  code: number | string
  type: 'app' | 'task' | 'connection' | 'reConnection'
  reason: string | ErrorState
}

type ErrorState = 'disconnect' | 'afk' | 'kick' | 'hangup'

interface OnRunningOptions {
  token: string
  coturns: RTCIceServer[]
  signaling: string
}
enum StartType {
  NormalMode = 1,
  ScreenMode = 3,
}
enum ScreenJoinType {
  Secret = 1,
  Link,
}
//when terminal is ios and wechat
onPhaseChange: (phase: Phase, deltaTime: number) => {
  if (phase === 'data-channel-open') {
    /* NOTE: Autoplay video need user activation gesture
     * @see https://html.spec.whatwg.org/multipage/interaction.html#user-activation-processing-model
     */
    someTriggerElement.addEventListener('click', () => launcherUI?.launcher?.resumeVideoStream())
  }
}
//Microphone

//Start capture audio to node
onPhaseChange: (phase: Phase, deltaTime: number) => {
  if (phase === 'data-channel-open') {
    launcherUI?.launcher?.openMicrophone()
  }
}
//Stop
launcherUI?.launcher?.closeMicrophone()
//Camera
const baseOptionsType = {
  address: 'xxxx',
  appKey: 'xxxx',
  startType: 1,
  enableVirtualCamera: true,
}
let launcherUI = new LauncherUI(baseOptionsType, container)

//Start capture video to node
onPhaseChange: (phase: Phase, deltaTime: number) => {
  if (phase === 'data-channel-open') {
    launcherUI?.launcher?.openCamera()
  }
}
//Stop
launcherUI?.launcher?.closeCamera()
// Public Cloud
import { LauncherUI } from 'live-cat-library'

const container = document.querySelector('body')
document.querySelector('body').style.width = '100%'
document.querySelector('body').style.height = '100%'
const baseOptionsType = {
  address: 'https://app.3dcat.live',
  appKey: 'xxxx',
  startType: 1,
}
const uiOptions = {
  loadingImage: '',
}
let launcherUI = new LauncherUI(baseOptionsType, container, uiOptions)

window.addEventListener('DOMContentLoaded', () => {
  if (navigator.userAgent.includes('miniProgram') || navigator.userAgent.includes('MicroMessenger')) {
    //wechat
    document.addEventListener('WeixinJSBridgeReady', bootstrap, false)
  } else {
    bootstrap()
  }
})
// Private Cloud
import { LauncherPrivateUI } from 'live-cat-library'

const container = document.querySelector('body')
document.querySelector('body').style.width = '100%'
document.querySelector('body').style.height = '100%'
const baseOptionsType = {
  address: 'xxxxx',
  appKey: 'xxxx',
  startType: 1,
}
const uiOptions = {
  loadingImage: '',
}
let launcherUI = new LauncherPrivateUI(baseOptionsType, container, uiOptions)

window.addEventListener('DOMContentLoaded', () => {
  if (navigator.userAgent.includes('miniProgram') || navigator.userAgent.includes('MicroMessenger')) {
    //wechat
    document.addEventListener('WeixinJSBridgeReady', bootstrap, false)
  } else {
    bootstrap()
  }
})

License

MIT

Keywords

FAQs

Package last updated on 14 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc