diff --git a/src/client/init.ts b/src/client/init.ts index 9144581488..4c69066bd8 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -21,7 +21,7 @@ import { applyTheme, lightTheme } from '@/scripts/theme'; import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; import { createPluginEnv } from '@/scripts/aiscript/api'; import { i18n, lang } from './i18n'; -import { stream } from '@/os'; +import { stream, sound } from '@/os'; console.info(`Misskey v${version}`); @@ -292,7 +292,7 @@ if (store.getters.isSignedIn) { hasUnreadMessagingMessage: true }); - app.sound('chatBg'); + sound('chatBg'); }); main.on('readAllAntennas', () => { @@ -306,7 +306,7 @@ if (store.getters.isSignedIn) { hasUnreadAntenna: true }); - app.sound('antenna'); + sound('antenna'); }); main.on('readAllAnnouncements', () => { @@ -326,7 +326,7 @@ if (store.getters.isSignedIn) { hasUnreadChannel: true }); - app.sound('channel'); + sound('channel'); }); main.on('readAllAnnouncements', () => { diff --git a/src/client/os.ts b/src/client/os.ts index c58204a071..3e373fff57 100644 --- a/src/client/os.ts +++ b/src/client/os.ts @@ -56,3 +56,12 @@ export function menu(props: Record) { props }); } + +export function sound(type: string) { + if (store.state.device.sfxVolume === 0) return; + const sound = store.state.device['sfx' + type.substr(0, 1).toUpperCase() + type.substr(1)]; + if (sound == null) return; + const audio = new Audio(`/assets/sounds/${sound}.mp3`); + audio.volume = store.state.device.sfxVolume; + audio.play(); +}