Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
live-cat-demo-1
Advanced tools
RayStreaming Launcher
instantiation parameter
type Phase =
| 'initial'
| 'signaling-connected'
| 'node-ready'
| 'end-candidate'
| 'peer-connection-connected'
| 'data-channel-open'
| 'streaming-ready'
| 'loaded-metadata'
| 'streaming-playing'
interface Options {
minBitrate: number
maxBitrate: number
startBitrate: number
rateLevel: RateLevel
startType: StartType
autorunRivatuner: boolean
enableLogPersistent: boolean
audioToastDisplay: boolean
iceTransportPolicy: RTCIceTransportPolicy
autoLoadingVideo: boolean
isFullScreen: boolean
openMicrophone: boolean
openMultiTouch: boolean
needLandscape: boolean
landscapeType: LandscapeType
settingHoverButton: VirtualControlDisplayType
keyboardMappingConfig?: VirtualGlobalType
inputHoverButton: InputHoverButton
toolbarLogo: string
toolOption?: ToolOptionType
eventOption?: eventOptionType
onError: (reason: ErrorState) => void
onPhaseChange: (phase: Phase, deltaTime: number) => void
onPlay: () => void
onMount: (element: HTMLElement) => void
onRotate: (rotate: boolean) => void
}
enum RateLevel {
SD,
HD,
FHD,
UHD4K,
}
enum StartType {
Normal = 1,
Screen = 3,
}
enum VirtualControlDisplayType {
HideAll,
DisplayMobile,
DisplayPc,
DisplayAll,
}
interface VirtualGlobalType {
resolutionRatio: string
buttonSize: ButtonSizeType
showButton: boolean
landscape: VirtualDataType[]
portrait: VirtualDataType[]
}
enum ButtonSizeType {
Small = 1,
Middle,
Large,
}
type VirtualDataType = {
type: ScreenDataType
value: SolutionValue
scale?: number
}
enum ScreenDataType {
Normal = 1,
UDLR,
WASD,
Joystick,
Mouse,
}
type SolutionValue = {
pos: number[]
value: number[]
width?: number
height: number
shape?: SolutionShape
}
enum SolutionShape {
Rectangle = 1,
Circle,
}
enum InputHoverButton {
Hide,
Display,
}
import { LauncherBase } from 'live-cat-demo-1'
// NOTE: signaling,token and iceServers were provided by 3dcat
const signaling = 'wss://xxxxx'
const token = 'xxxxxxxx'
const iceServers = [
{
urls: 'turn:xxx.xxx.xxx.xxx',
username: 'xxxxxx',
credential: 'xxxxxx',
},
{
urls: 'stun:xxx.xxx.xxx.xxx',
username: 'xxxxxx',
credential: 'xxxxx',
},
]
const bootstrap = () => {
const container = document.querySelector('body')
document.querySelector('body').style.width = '100%'
document.querySelector('body').style.height = '100%'
const launcherBase = new LauncherBase(
`${signaling}/clientWebsocket/${token}`,
iceServers,
container,
options,
)
}
window.addEventListener('DOMContentLoaded', () => {
if (
navigator.userAgent.includes('miniProgram') ||
navigator.userAgent.includes('MicroMessenger')
) {
//NOTE: wechat environment started
document.addEventListener('WeixinJSBridgeReady', bootstrap)
} else {
bootstrap()
}
})
launcherBase.getConnection().changeBandwidth(
8000, // start bitrate kbps
10000, // max bitrate kbps
5000, // min bitrate kbps
)
launcherBase.getConnection().changeBandwidth(
10000, // medians bitrate kbps
)
launcherBase.toggleStatistics()
window.setInterval(() => {
const { fps, bitrate, packetLossRate, latency, averageJitterBufferDelay } = launcherBase.report()
console.log(`
FPS: ${fps}
biterate: ${bitrate}kbps
latency: ${latency}ms
averageJitterBufferDelay: ${averageJitterBufferDelay}ms
packetLossRate: ${(packetLossRate * 100).toFixed(3)}%
`)
}, 1000)
/* NOTE: fullscreen need user activation gesture
* @see https://html.spec.whatwg.org/multipage/interaction.html#user-activation-processing-model
*/
someTriggerElement.addEventListener('click', () => launcherBase.toggleFullscreen())
// ...
launcherBase.showDashboard()
launcherBase.hideDashboard()
// NOTE: export statistics and log data
launcherBase.exportLog()
// start capture audio to node
launcherBase.openMicrophone()
// stop
launcherBase.closeMicrophone()
// start capture video to node
launcherBase.openCamera()
// stop
launcherBase.closeCamera()
//Upload file to node
//Note: When dir is empty, it actually points to the "<User>/Downloads" directory in node
launcherBase.changeUploadDir(dir:string)
launcherBase.uploadFile(file: File, onStateChange?: FileUploadStateChangeHandler)
//Download file from node
launcherBase.downloadFileByFullPath(absolutePath:string)
launcherBase.destory()
FAQs
This is a component library for [3DCAT](https://www.3dcat.live/)
The npm package live-cat-demo-1 receives a total of 0 weekly downloads. As such, live-cat-demo-1 popularity was classified as not popular.
We found that live-cat-demo-1 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.