Fix: исправлена загрузка видео в чате
- Добавлен атрибут preload='metadata' для video элементов - Добавлен текст-заглушка 'Ваш браузер не поддерживает видео' - Добавлена принудительная загрузка video.load() после добавления в DOM - Исправлено как в шаблоне, так и в JavaScript для WebSocket сообщений Теперь видео загружается сразу после отправки без перезагрузки страницы
This commit is contained in:
parent
34259a4e46
commit
e2f29fc6bd
@ -176,8 +176,9 @@ export function createMessageElement(msg, options = {}) {
|
||||
<div class="small text-secondary">${esc(att.file_name)}</div>`;
|
||||
} else if (att.file_type === 'video') {
|
||||
attachmentsHTML += `
|
||||
<video controls class="w-100" style="max-width: 400px;">
|
||||
<video controls preload="metadata" class="w-100" style="max-width: 400px;">
|
||||
<source src="${att.file_url}" type="${att.mime_type}">
|
||||
Ваш браузер не поддерживает видео.
|
||||
</video>
|
||||
<div class="small text-secondary">${esc(att.file_name)}</div>`;
|
||||
} else {
|
||||
@ -222,5 +223,15 @@ export function createMessageElement(msg, options = {}) {
|
||||
wrap.innerHTML = `${bubble}<a class="ms-2 text-decoration-none" href="${profileUrl}">${ava}</a>`;
|
||||
}
|
||||
|
||||
// Принудительно загружаем видео после добавления в DOM
|
||||
if (msg.has_attachments && msg.attachments && msg.attachments.length > 0) {
|
||||
setTimeout(() => {
|
||||
const videos = wrap.querySelectorAll('video');
|
||||
videos.forEach(video => {
|
||||
video.load();
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
|
||||
return wrap;
|
||||
}
|
||||
|
||||
@ -107,8 +107,9 @@
|
||||
</audio>
|
||||
<div class="small text-secondary">{{ attachment.file_name }}</div>
|
||||
{% elif attachment.file_type == 'video' %}
|
||||
<video controls class="w-100" style="max-width: 400px;">
|
||||
<video controls preload="metadata" class="w-100" style="max-width: 400px;">
|
||||
<source src="{{ attachment.file.url }}" type="{{ attachment.mime_type }}">
|
||||
Ваш браузер не поддерживает видео.
|
||||
</video>
|
||||
<div class="small text-secondary">{{ attachment.file_name }}</div>
|
||||
{% else %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user