truehear-audio-library-node
v1.0.0
Published
Native Node.js audio device listing and default-device switching library.
Maintainers
Readme
truehear-audio-library-node
Native Node.js audio library for listing audio devices and setting default audio devices.
Author: @truehear team
Installation
Install the package with npm:
npm install truehear-audio-library-nodePlatform support
Currently supported platform:
WindowsThis package uses a native Node.js addon to access system audio devices.
Basic usage
import { listDevices } from 'truehear-audio-library-node';
const devices = listDevices('playback');
console.log(devices);List playback devices
Playback devices are output devices such as speakers, headphones, HDMI output, or monitor audio.
import { listDevices } from 'truehear-audio-library-node';
const playbackDevices = listDevices('playback');
console.log(playbackDevices);Example output:
[
{
default: true,
defaultCommunication: false,
type: 'playback',
name: 'Speakers (Realtek(R) Audio)',
id: '{0.0.0.00000000}.{37439da3-a6eb-4740-8405-6cfbae03dd57}'
}
]List recording devices
Recording devices are input devices such as microphones, headset microphones, or USB audio input devices.
import { listDevices } from 'truehear-audio-library-node';
const recordingDevices = listDevices('recording');
console.log(recordingDevices);Set the default playback device
Use the device id returned from listDevices.
import {
listDevices,
setDefaultDevice,
} from 'truehear-audio-library-node';
const devices = listDevices('playback');
const targetDevice = devices[0];
setDefaultDevice('playback', targetDevice.id);Set the default recording device
import {
listDevices,
setDefaultDevice,
} from 'truehear-audio-library-node';
const devices = listDevices('recording');
const targetDevice = devices[0];
setDefaultDevice('recording', targetDevice.id);Set the default communication device
Communication devices are used by calling and meeting applications.
import {
listDevices,
setDefaultCommunicationDevice,
} from 'truehear-audio-library-node';
const devices = listDevices('playback');
const targetDevice = devices[0];
setDefaultCommunicationDevice('playback', targetDevice.id);API
listDevices(type)
Lists audio devices.
listDevices(type: AudioDeviceType): AudioDeviceInfo[]Example:
const playbackDevices = listDevices('playback');
const recordingDevices = listDevices('recording');setDefaultDevice(type, deviceId)
Sets the normal default audio device.
setDefaultDevice(type: AudioDeviceType, deviceId: string): voidExample:
setDefaultDevice('playback', deviceId);setDefaultCommunicationDevice(type, deviceId)
Sets the default communication audio device.
setDefaultCommunicationDevice(
type: AudioDeviceType,
deviceId: string
): voidExample:
setDefaultCommunicationDevice('playback', deviceId);Types
AudioDeviceType
type AudioDeviceType = 'playback' | 'recording';AudioDeviceInfo
type AudioDeviceInfo = {
default: boolean;
defaultCommunication: boolean;
type: AudioDeviceType;
name: string;
id: string;
};Device ID
The id field is the native operating system device identifier.
Use this value when calling:
setDefaultDevice(type, deviceId);
setDefaultCommunicationDevice(type, deviceId);Error handling
Invalid arguments throw TypeError.
Native audio failures throw Error.
import { listDevices } from 'truehear-audio-library-node';
try {
const devices = listDevices('playback');
console.log(devices);
} catch (error) {
console.error(error);
}License
ISC
