mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
fix audio web
This commit is contained in:
+17
-1
@@ -42,6 +42,22 @@ unit WebServer;
|
||||
дескриптора не прерывает блокирующий fpAccept/fpRecv в чужом потоке —
|
||||
только shutdown(SHUT_RDWR) гарантированно разблокирует их, позволяя
|
||||
потокам выйти и WaitFor завершиться без зависания.
|
||||
- (Audio fix 1) Исправлена константа OPUS_APPLICATION_AUDIO: было 2101
|
||||
(невалидное значение), стало 2049 — правильное значение. Неверная
|
||||
константа приводила к Err!=0 из opus_encoder_create, FOpusEnc=nil,
|
||||
FOpusReady=false — аудио не кодировалось совсем.
|
||||
- (Audio fix 2) Заголовки COOP/COEP убраны — они блокировали WebSocket
|
||||
и загрузку CDN ресурсов (fonts, opus-decoder), из-за чего
|
||||
FWebClientActive никогда не становился true и десктоп звук не
|
||||
отключался при подключении веб-клиента.
|
||||
- (Audio fix 3) В JS исправлен вызов декодера: decodeFrame → decode
|
||||
(актуальный API opus-decoder@0.7.7). decodeFrame не существует в этой
|
||||
версии — silent fail, звука нет.
|
||||
- (Audio fix 4) Добавлен оверлей "Click to start audio" — AudioContext
|
||||
нельзя создать из WebSocket callback (не user gesture). Оверлей
|
||||
гарантирует создание AudioContext при первом кликe пользователя.
|
||||
- (Audio fix 5) Буферизация Opus-пакетов пока WASM не инициализирован —
|
||||
первые пакеты больше не теряются при медленной загрузке CDN.
|
||||
}
|
||||
|
||||
{$IFDEF FPC}
|
||||
@@ -375,7 +391,7 @@ begin
|
||||
end;
|
||||
|
||||
FOpusEnc := FOpusCreate(OPUS_SAMPLE_RATE, OPUS_CHANNELS,
|
||||
2101 {OPUS_APPLICATION_AUDIO}, @Err);
|
||||
2049 {OPUS_APPLICATION_AUDIO}, @Err);
|
||||
if (FOpusEnc = nil) or (Err <> 0) then
|
||||
begin
|
||||
FreeLibrary(FOpusLib); FOpusLib := 0; Exit;
|
||||
|
||||
Reference in New Issue
Block a user