Fix playing emoji animation sound in Safari
This commit is contained in:
parent
6cb38fb1cc
commit
1f7e1203fa
@ -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;
|
||||
|
@ -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
|
||||
}, {
|
||||
|
Loading…
x
Reference in New Issue
Block a user