fix: deck uiの通知音が重なる問題 (#14029)
* fix: deck uiの通知音が重なる * docs: Fix: deck uiの通知音が重なる問題 * unexport internal function * fix Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com> * chore: improve condition * docs: move js dco comment --------- Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com> Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
This commit is contained in:
parent
efa80f9ad4
commit
865b3039cc
2 changed files with 17 additions and 7 deletions
|
@ -41,6 +41,7 @@
|
||||||
- Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正
|
- Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正
|
||||||
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672)
|
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672)
|
||||||
- Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正
|
- Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正
|
||||||
|
- Fix: deck uiの通知音が重なる問題 (#14029)
|
||||||
- Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正
|
- Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正
|
||||||
- Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正
|
- Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正
|
||||||
- Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正
|
- Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正
|
||||||
|
|
|
@ -124,10 +124,23 @@ export async function loadAudio(url: string, options?: { useCache?: boolean; })
|
||||||
*/
|
*/
|
||||||
export function playMisskeySfx(operationType: OperationType) {
|
export function playMisskeySfx(operationType: OperationType) {
|
||||||
const sound = defaultStore.state[`sound_${operationType}`];
|
const sound = defaultStore.state[`sound_${operationType}`];
|
||||||
if (sound.type == null || !canPlay || ('userActivation' in navigator && !navigator.userActivation.hasBeenActive)) return;
|
playMisskeySfxFile(sound);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* サウンド設定形式で指定された音声を再生する
|
||||||
|
* @param soundStore サウンド設定
|
||||||
|
*/
|
||||||
|
export function playMisskeySfxFile(soundStore: SoundStore) {
|
||||||
|
// 連続して再生しない
|
||||||
|
if (!canPlay) return;
|
||||||
|
// ユーザーアクティベーションが必要な場合はそれがない場合は再生しない
|
||||||
|
if ('userActivation' in navigator && !navigator.userActivation.hasBeenActive) return;
|
||||||
|
// サウンドがない場合は再生しない
|
||||||
|
if (soundStore.type === null || soundStore.type === '_driveFile_' && !soundStore.fileUrl) return;
|
||||||
|
|
||||||
canPlay = false;
|
canPlay = false;
|
||||||
playMisskeySfxFile(sound).finally(() => {
|
playMisskeySfxFileInternal(soundStore).finally(() => {
|
||||||
// ごく短時間に音が重複しないように
|
// ごく短時間に音が重複しないように
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
canPlay = true;
|
canPlay = true;
|
||||||
|
@ -135,11 +148,7 @@ export function playMisskeySfx(operationType: OperationType) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
async function playMisskeySfxFileInternal(soundStore: SoundStore) {
|
||||||
* サウンド設定形式で指定された音声を再生する
|
|
||||||
* @param soundStore サウンド設定
|
|
||||||
*/
|
|
||||||
export async function playMisskeySfxFile(soundStore: SoundStore) {
|
|
||||||
if (soundStore.type === null || (soundStore.type === '_driveFile_' && !soundStore.fileUrl)) {
|
if (soundStore.type === null || (soundStore.type === '_driveFile_' && !soundStore.fileUrl)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue