diff --git a/examples/stereo/src/app/slave.rs b/examples/stereo/src/app/slave.rs index e1cf5d3..fd634d6 100644 --- a/examples/stereo/src/app/slave.rs +++ b/examples/stereo/src/app/slave.rs @@ -9,7 +9,6 @@ use crate::net::protocol::{AudioPacket, ChannelRole, ControlPacket}; use crate::utils::jitter_buffer::JitterBuffer; use crate::utils::sync::{ClockSync, now_us}; use anyhow::{Result, anyhow}; -use std::process::Command; use std::sync::Arc; use std::time::Duration; use tokio::io::{AsyncReadExt, AsyncWriteExt}; @@ -133,13 +132,17 @@ async fn handle_connection(role: ChannelRole) -> Result<()> { // 8. 播放主循环 println!("✅ 主节点已连接,音频串流中..."); - let _ = Command::new("sh") - .arg("-c") - .arg(format!( - "/usr/sbin/tts_play.sh \"主节点已连接,{}\" >/dev/null 2>&1", - role.to_string() - )) - .status(); + let role_str = role.to_string(); + tokio::spawn(async move { + let _ = tokio::process::Command::new("sh") + .arg("-c") + .arg(format!( + "/usr/sbin/tts_play.sh \"主节点已连接,{}\" >/dev/null 2>&1", + role_str + )) + .status() + .await; + }); let mut pcm_buf = vec![0i16; config.frame_size]; let mut last_seq: Option = None;