feat: 支持在线升级功能

This commit is contained in:
mofeng-git
2026-02-11 19:41:19 +08:00
parent 60b294e0ab
commit 934dc48208
36 changed files with 945 additions and 100 deletions

View File

@@ -14,8 +14,7 @@ use super::encoder::{OpusConfig, OpusEncoder, OpusFrame};
use crate::error::{AppError, Result};
/// Audio stream state
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[derive(Default)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum AudioStreamState {
/// Stream is stopped
#[default]
@@ -28,10 +27,8 @@ pub enum AudioStreamState {
Error,
}
/// Audio streamer configuration
#[derive(Debug, Clone)]
#[derive(Default)]
#[derive(Debug, Clone, Default)]
pub struct AudioStreamerConfig {
/// Audio capture configuration
pub capture: AudioConfig,
@@ -39,7 +36,6 @@ pub struct AudioStreamerConfig {
pub opus: OpusConfig,
}
impl AudioStreamerConfig {
/// Create config for a specific device with default quality
pub fn for_device(device_name: &str) -> Self {
@@ -280,7 +276,9 @@ impl AudioStreamer {
// Encode to Opus
let opus_result = {
let mut enc_guard = encoder.lock().await;
(*enc_guard).as_mut().map(|enc| enc.encode_frame(&audio_frame))
(*enc_guard)
.as_mut()
.map(|enc| enc.encode_frame(&audio_frame))
};
match opus_result {