音频配置参数引入

This commit is contained in:
杍超
2025-02-12 14:52:27 +08:00
parent 7179a577f2
commit a1f3079232
4 changed files with 38 additions and 9 deletions

View File

@@ -81,6 +81,7 @@
on:error={({ detail }) => gradio.dispatch("error", detail)}
i18n={gradio.i18n}
stream_handler={(...args) => gradio.client.stream(...args)}
{track_constraints}
{height}
{on_change_cb} {rtc_configuration}
on:tick={() => gradio.dispatch("tick")}

View File

@@ -19,18 +19,30 @@ export async function get_video_stream(
include_audio: boolean | { deviceId: { exact: string } },
video_source: HTMLVideoElement,
device_id?: string,
track_constraints?: MediaTrackConstraints
track_constraints?:
| MediaTrackConstraints
| { video: MediaTrackConstraints; audio: MediaTrackConstraints }
): Promise<MediaStream> {
const fallback_constraints = track_constraints || {
width: { ideal: 500 },
height: { ideal: 500 },
};
console.log(track_constraints);
const video_fallback_constraints = (track_constraints as any)?.video ||
track_constraints || {
width: { ideal: 500 },
height: { ideal: 500 },
};
const audio_fallback_constraints = (track_constraints as any)?.audio ||
track_constraints || {
echoCancellation: true,
noiseSuppression: true,
autoGainControl: true,
};
const constraints = {
video: device_id
? { deviceId: { exact: device_id }, ...fallback_constraints }
: fallback_constraints,
audio: include_audio,
? { deviceId: { exact: device_id }, ...video_fallback_constraints }
: video_fallback_constraints,
audio:
typeof include_audio === "object"
? { ...include_audio, ...audio_fallback_constraints }
: include_audio,
};
return navigator.mediaDevices