2015-07-28 1 views
1

J'ai une application empaquetée par Chrome qui reçoit des paquets UDP contenant des données audio en utilisant Chrome.sockets.udp et les lit en utilisant l'API Web Audio. Comme vous pouvez l'imaginer, cela finit par être une lourde charge pour le CPU, et je commence à laisser tomber des paquets si j'essaie d'ouvrir une autre fenêtre Chrome, ce qui me fait croire qu'une fois que je commencerai à ajouter des éléments interactifs dans des problèmes. Je voulais emballer tout cela dans un Web Worker pour éviter cela, mais quand j'essaie de le faire et de déclarer var socket = chrome.sockets.udp; dans mon Web Worker, je finis par obtenir un Uncaught ReferenceError: chrome is not defined lorsque j'essaie de l'utiliser. Est-il impossible d'utiliser l'API Chrome sockets dans un Web Worker? Il semble qu'un Web Worker serait un cas d'utilisation parfait pour une telle chose.Chrome Sockets dans un travailleur Web?

+0

Vous ne pouvez pas utiliser l'API Chrome dans les Webworkers. J'utilise l'udp et tcp, et je l'ai juste accroché pour poster des paquets directement à l'ouvrier Web pour le traitement. Cela a beaucoup aidé, mais ça ne sert à rien, vous pouvez utiliser l'API Chrome en eux. –

Répondre

1

Vous pouvez utiliser des objets transférables pour transmettre Blob/Buffer au processus de travail Web à partir de l'application principale.

+0

Merci pour l'aide. C'était la bonne façon d'y arriver - malheureusement, les contextes Web Audio ne sont actuellement pas pris en charge par les Web Workers. Merci quand même. – user2871915