slanted-gamedev-toolz
Version:
A slanted mix of tools for your brilliant ideas in game design.
36 lines (35 loc) • 1.32 kB
JavaScript
import { useCallback, useEffect } from "react";
import { useGlobalAudioPlayer } from "react-use-audio-player";
import { randomArrayItem } from "../../../util/randomArrayItem";
export function usePlayCatMusicFile({ track }) {
const { load: loadMusic, stop: stopMusic, fade: fadeMusic, } = useGlobalAudioPlayer();
const isMuteMusic = false;
const playMusic = useCallback(() => {
loadMusic("./audio/Columbian Soul.mp3", {
autoplay: true,
});
}, [loadMusic]);
useEffect(() => {
if (isMuteMusic) {
stopMusic();
return;
}
const isSingleTrack = typeof track === "string";
const src = `./audio/soundTrack/${isSingleTrack ? track : randomArrayItem(track)}.mp3`;
console.log("Playing Audio:", src);
loadMusic(src);
return function cleanup() {
console.log("Stop Audio:", src);
stopMusic();
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isMuteMusic, track]);
return { playMusic };
}
export const musicQuasarLoops = ["QuasarA110", "QuasarB110", "QuasarC110"];
export const musicBlazeLoops = ["BlazeA110", "BlazeB110", "BlazeC110"];
export const musicTouchstoneLoops = [
"TouchstoneA92",
"TouchstoneB92",
"TouchstoneC92",
];