chore: 测试播放和录音
This commit is contained in:
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user