playback-audio-controller
is a JavaScript library that provides a simple interface for controlling audio playback and analyzing audio frequencies in the browser. It utilizes the Web Audio API to manage audio playback and perform frequency analysis.
You can install the library via npm:
npm install playback-audio-controller
You can import the AudioController
class as follows:
const { AudioController } = require("playback-audio-controller");
To load an audio file for playback, create an instance of AudioController
and use the load
method:
const audioController = new AudioController();
const audioFileUrl = "your_audio_file.mp3";
audioController.load(audioFileUrl).then(() => {
// The audio file is loaded and ready to be played or analyzed.
});
Before playing or analyzing audio, you need to initialize the audio context. You can use the initialize
method:
audioController.initialize().then(() => {
// The audio context is now initialized and ready to use.
});
To start playing the loaded audio file, use the start
method:
audioController.start();
You can also toggle between play and stop states using the toggle
method:
audioController.toggle(); // Toggles between play and stop.
To stop the audio playback, use the stop
method:
audioController.stop();
You can analyze the frequency data of the audio using the analyzeFrequency
method. Here's an example of how to use it:
const options = {
fftSize: 2048, // FFT size for frequency analysis (default: 2048)
minFrequency: 20, // Minimum frequency to analyze in Hz (default: 0)
maxFrequency: 20000, // Maximum frequency to analyze in Hz (default: half the sample rate)
};
const frequencyData = audioController.analyzeFrequency(options);
// `frequencyData` is a Uint8Array containing frequency data within the specified range.
Here's a complete example of how to use playback-audio-controller
:
<button id="toggle-play" type="button">Toggle</button>
<script>
const { AudioController } = require("playback-audio-controller");
const audioController = new AudioController();
const audioFileUrl = "your_audio_file.mp3";
audioController.load(audioFileUrl).then(() => {
audioController.initialize().then(() => {
// Audio is loaded and context is initialized.
document
.getElementById("toggle-play")
.addEventListener("click", () => {
audioController.toggle();
});
const logFrequencies = () => {
setTimeout(() => {
// Analyze audio frequency in the range of 20Hz to 20000Hz.
const frequencyData = audioController.analyzeFrequency({
minFrequency: 20,
maxFrequency: 20000,
});
console.log("Frequency Data:", frequencyData);
logFrequencies();
}, 100);
};
logFrequencies();
});
});
</script>