chore: 测试播放和录音

This commit is contained in:
Del Wang
2026-01-02 17:23:24 +08:00
parent 24b3fdddf8
commit a2d06958e1
24 changed files with 712 additions and 1353 deletions
+42 -5
View File
@@ -1,10 +1,47 @@
use anyhow::Result;
use std::sync::Arc;
use xiao::app::server::Server;
use xiao::audio::config::AudioConfig;
#[tokio::main]
async fn main() -> Result<()> {
#[cfg(feature = "app")]
{
xiao::app::server::entry::run_server().await?;
async fn main() -> anyhow::Result<()> {
let server = Arc::new(Server::new().await?);
let s = server.clone();
tokio::spawn(async move {
s.run(8080).await.unwrap();
});
println!("Server is running. Waiting for a client to connect...");
loop {
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
let clients = server.get_clients().await;
if !clients.is_empty() {
let addr = clients[0];
println!("Client connected: {}. Starting tests...", addr);
println!("1. Testing Shell RPC...");
let res = server
.call(addr, "shell", vec!["echo 'Hello from Mars!'".to_string()])
.await?;
println!(
"RPC Result: stdout={}, code={}",
res.stdout.trim(),
res.code
);
println!("2. Testing Audio Recording (10s)...");
server.start_record(addr, AudioConfig::voice_16k()).await?;
tokio::time::sleep(std::time::Duration::from_secs(12)).await;
println!("3. Testing Audio Playback (from temp/test.wav)...");
server.start_play(addr).await?;
break;
}
}
println!("Tests completed. Press Ctrl+C to exit.");
tokio::signal::ctrl_c().await?;
Ok(())
}