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: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正  
 | 
			
		||||
  (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672)
 | 
			
		||||
- Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正
 | 
			
		||||
- Fix: deck uiの通知音が重なる問題 (#14029)
 | 
			
		||||
- Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正
 | 
			
		||||
- Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正
 | 
			
		||||
- Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -124,10 +124,23 @@ export async function loadAudio(url: string, options?: { useCache?: boolean; })
 | 
			
		|||
 */
 | 
			
		||||
export function playMisskeySfx(operationType: 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;
 | 
			
		||||
	playMisskeySfxFile(sound).finally(() => {
 | 
			
		||||
	playMisskeySfxFileInternal(soundStore).finally(() => {
 | 
			
		||||
		// ごく短時間に音が重複しないように
 | 
			
		||||
		setTimeout(() => {
 | 
			
		||||
			canPlay = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -135,11 +148,7 @@ export function playMisskeySfx(operationType: OperationType) {
 | 
			
		|||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * サウンド設定形式で指定された音声を再生する
 | 
			
		||||
 * @param soundStore サウンド設定
 | 
			
		||||
 */
 | 
			
		||||
export async function playMisskeySfxFile(soundStore: SoundStore) {
 | 
			
		||||
async function playMisskeySfxFileInternal(soundStore: SoundStore) {
 | 
			
		||||
	if (soundStore.type === null || (soundStore.type === '_driveFile_' && !soundStore.fileUrl)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue