Bienvenue sur le SDK Stream Deck - conçu pour faciliter la création de plugins pour Stream Deck, le STRIED Deck SDK fournit tout ce dont vous avez besoin pour vous connecter et communiquer avec l'application Stream Deck, vous permettant de vous concentrer sur les trucs amusants.
La création de plugins de pont de flux avec Node.js nécessite Node.js v20. Lors de l'installation de Node.js, nous avons recommandé d'utiliser un gestionnaire de version tel que NVM (macOS) ou NVM-Windows (Windows).
Le Stream Deck CLI fournit des commandes pour créer, tester et regrouper vos plugins, et est le moyen le plus simple de commencer à construire pour Stream Deck. Vous pouvez également en savoir plus sur le démarrage de notre documentation.
npm install -g @elgato/cli@latest
create
pour initialiser l'assistant de création. streamdeck create
Après avoir créé un plugin avec streamdeck create
vous serez fourni avec un environnement local pour la construction d'un plugin.
/
├── *.sdPlugin/
│ ├── bin/
│ ├── imgs/
│ ├── logs/
│ ├── ui/
│ │ └── increment-counter.html
│ └── manifest.json
├── src/
│ ├── actions/
│ │ └── increment-counter.ts
│ └── plugin.ts
├── package.json
├── rollup.config.mjs
└── tsconfig.json
Le package.json
fournit deux scripts pour construire le plugin.
npm run build
- construit le plugin.npm run watch
- regarde en continu pour les modifications et recharge à chaud le plugin après la construction. Les actions sont la star du spectacle et permettent aux utilisateurs d'interagir avec votre plugin. Les actions sont représentées comme des classes qui héritent de SingletonAction
, permettant à votre plugin de recevoir des événements de Stream Deck, par exemple Key Down, Dial Rotate, etc.
Ce qui suit est un exemple d'une action qui écoute l'événement keyDown
, puis définit le titre de l'action source.
import { action , KeyDownEvent , SingletonAction } from "@elgato/streamdeck" ;
@ action ( { UUID : "com.elgato.hello-world.say-hello" } )
export class SayHelloAction extends SingletonAction {
/**
* Listen for the key down event that occurs when a user presses
* a Stream Deck button, and change the title of the action.
*/
async onKeyDown ( ev : KeyDownEvent ) {
await ev . action . setTitle ( "Hello world" ) ;
}
}
Les plugins peuvent être débogués à l'aide de n'importe quel débogueur Node.js, par exemple Visual Studio Code, Chrome, etc., et par défaut aura le débogage activé lors de la création avec la commande Stream Deck CLI streamdeck create
.
Vous pouvez configurer le débogage dans la configuration Node.js du manifeste.
{
// ...
"Nodejs" : {
"Version" : "20" ,
"Debug" : "enabled"
} ,
}
Il existe quatre options disponibles lors de la configuration de la propriété Debug
dans le manifeste:
"enabled"
- Le plugin s'exécutera avec --inspect
permettant aux débuggeurs de se connecter."break"
- Le plugin sera lancé avec --inspect-brk
et attendra une attachement de débogueur avant l'exécution.string
- une collection d'arguments CLI fournis au plugin.undefined
- le débogage est désactivé.Lors de l'exécution du plugin en mode de débogage
"enabled"
ou"break"
, un port disponible aléatoire sera alloué à l'écouteur de débogage chaque fois que le plugin se lance. Si vous souhaitez écouter sur un port spécifique, la valeurDebug
peut être définie sur une chaîne d'arguments CLI, par exemple à écouter sur le port12345
, la valeurDebug
serait--inspect=127.0.0.1:12345
.