Better sfx

This commit is contained in:
syuilo 2020-02-20 03:14:17 +09:00
parent e7205d9cc2
commit 880cea5a56
9 changed files with 20 additions and 4 deletions

View File

@ -431,6 +431,7 @@ volume: "音量"
_sfx: _sfx:
note: "ノート" note: "ノート"
noteMy: "ノート(自分)"
notification: "通知" notification: "通知"
chat: "チャット" chat: "チャット"
chatBg: "チャット(バックグラウンド)" chatBg: "チャット(バックグラウンド)"

Binary file not shown.

Binary file not shown.

View File

@ -53,7 +53,9 @@ export default Vue.extend({
(this.$refs.tl as any).prepend(note); (this.$refs.tl as any).prepend(note);
if (this.sound) { if (this.sound) {
const audio = new Audio(`/assets/sounds/${this.$store.state.device.sfxNote}.mp3`); const audio = new Audio(note.userId === this.$store.state.i.id
? `/assets/sounds/${this.$store.state.device.sfxNoteMy}.mp3`
: `/assets/sounds/${this.$store.state.device.sfxNote}.mp3`);
audio.volume = this.$store.state.device.sfxVolume; audio.volume = this.$store.state.device.sfxVolume;
audio.play(); audio.play();
} }

View File

@ -17,6 +17,11 @@
<option v-for="sound in sounds" :value="sound" :key="sound">{{ sound || $t('none') }}</option> <option v-for="sound in sounds" :value="sound" :key="sound">{{ sound || $t('none') }}</option>
<template #text><button class="_textButton" @click="listen(sfxNote)" v-if="sfxNote"><fa :icon="faPlay"/> {{ $t('listen') }}</button></template> <template #text><button class="_textButton" @click="listen(sfxNote)" v-if="sfxNote"><fa :icon="faPlay"/> {{ $t('listen') }}</button></template>
</mk-select> </mk-select>
<mk-select v-model="sfxNoteMy">
<template #label>{{ $t('_sfx.noteMy') }}</template>
<option v-for="sound in sounds" :value="sound" :key="sound">{{ sound || $t('none') }}</option>
<template #text><button class="_textButton" @click="listen(sfxNoteMy)" v-if="sfxNoteMy"><fa :icon="faPlay"/> {{ $t('listen') }}</button></template>
</mk-select>
<mk-select v-model="sfxNotification"> <mk-select v-model="sfxNotification">
<template #label>{{ $t('_sfx.notification') }}</template> <template #label>{{ $t('_sfx.notification') }}</template>
<option v-for="sound in sounds" :value="sound" :key="sound">{{ sound || $t('none') }}</option> <option v-for="sound in sounds" :value="sound" :key="sound">{{ sound || $t('none') }}</option>
@ -87,6 +92,8 @@ import { langs } from '../../config';
const sounds = [ const sounds = [
null, null,
'syuilo/up',
'syuilo/down',
'syuilo/pope1', 'syuilo/pope1',
'syuilo/pope2', 'syuilo/pope2',
'syuilo/waon', 'syuilo/waon',
@ -170,6 +177,11 @@ export default Vue.extend({
set(value) { this.$store.commit('device/set', { key: 'sfxNote', value }); } set(value) { this.$store.commit('device/set', { key: 'sfxNote', value }); }
}, },
sfxNoteMy: {
get() { return this.$store.state.device.sfxNoteMy; },
set(value) { this.$store.commit('device/set', { key: 'sfxNoteMy', value }); }
},
sfxNotification: { sfxNotification: {
get() { return this.$store.state.device.sfxNotification; }, get() { return this.$store.state.device.sfxNotification; },
set(value) { this.$store.commit('device/set', { key: 'sfxNotification', value }); } set(value) { this.$store.commit('device/set', { key: 'sfxNotification', value }); }

View File

@ -42,10 +42,11 @@ const defaultDeviceSettings = {
showFixedPostForm: false, showFixedPostForm: false,
useNotificationsPopup: true, useNotificationsPopup: true,
sfxVolume: 0.3, sfxVolume: 0.3,
sfxNote: 'syuilo/pope1', sfxNote: 'syuilo/down',
sfxNoteMy: 'syuilo/up',
sfxNotification: 'syuilo/pope2', sfxNotification: 'syuilo/pope2',
sfxChat: 'syuilo/waon', sfxChat: 'syuilo/pope1',
sfxChatBg: null, sfxChatBg: 'syuilo/waon',
userData: {}, userData: {},
}; };