diff --git a/src/components/wrappers.ts b/src/components/wrappers.ts index 875d383f..0c5eaf89 100644 --- a/src/components/wrappers.ts +++ b/src/components/wrappers.ts @@ -1341,12 +1341,15 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o appStickersManager.preloadAnimatedEmojiStickerAnimation(emoji); attachClickEvent(div, async(e) => { + cancelEvent(e); const animation = LottieLoader.getAnimation(div); if(animation.paused) { const doc = appStickersManager.getAnimatedEmojiSoundDocument(emoji); if(doc) { const audio = document.createElement('audio'); + audio.style.display = 'none'; + div.parentElement.append(audio); try { await appDocsManager.downloadDoc(doc); @@ -1355,9 +1358,10 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o audio.src = cacheContext.url; audio.play(); await onMediaLoad(audio, undefined, true); - + audio.addEventListener('ended', () => { audio.src = ''; + audio.remove(); }, {once: true}); } catch(err) { @@ -1368,8 +1372,6 @@ export function wrapSticker({doc, div, middleware, lazyLoadQueue, group, play, o animation.restart(); } - cancelEvent(e); - const doc = appStickersManager.getAnimatedEmojiSticker(emoji, true); if(!doc) { return; diff --git a/src/lib/appManagers/appStickersManager.ts b/src/lib/appManagers/appStickersManager.ts index 6a208a25..52f33de5 100644 --- a/src/lib/appManagers/appStickersManager.ts +++ b/src/lib/appManagers/appStickersManager.ts @@ -182,15 +182,17 @@ export class AppStickersManager { flags: 0, id: sound.id, access_hash: sound.access_hash, - attributes: [/* { + attributes: [{ _: 'documentAttributeAudio', duration: 1, - pFlags: {} - } */], + pFlags: { + voice: true + } + }], date: 0, dc_id: rootScope.config.this_dc, file_reference: bytes, - mime_type: 'audio/mp3', + mime_type: 'audio/ogg', size: 1 // size: 101010 // test loading everytime }, {