@@ -2,7 +2,6 @@ use bytes::{BufMut, BytesMut};
2
2
use futures:: StreamExt ;
3
3
use livekit:: prelude:: * ;
4
4
use livekit:: webrtc:: audio_stream:: native:: NativeAudioStream ;
5
- use livekit:: webrtc:: native:: audio_resampler;
6
5
use std:: env;
7
6
use tokio:: fs:: File ;
8
7
use tokio:: io:: { AsyncWriteExt , BufWriter } ;
@@ -118,29 +117,16 @@ async fn record_track(audio_track: RemoteAudioTrack) -> Result<(), std::io::Erro
118
117
println ! ( "Recording track {:?}" , audio_track. sid( ) ) ;
119
118
let rtc_track = audio_track. rtc_track ( ) ;
120
119
121
- let header = WavHeader {
122
- sample_rate : 48000 ,
123
- bit_depth : 16 ,
124
- num_channels : 2 ,
125
- } ;
120
+ let header = WavHeader { sample_rate : 48000 , bit_depth : 16 , num_channels : 2 } ;
126
121
127
- let mut resampler = audio_resampler:: AudioResampler :: default ( ) ;
128
122
let mut wav_writer = WavWriter :: create ( FILE_PATH , header) . await ?;
129
- let mut audio_stream = NativeAudioStream :: new ( rtc_track) ;
123
+ let mut audio_stream =
124
+ NativeAudioStream :: new ( rtc_track, header. sample_rate as i32 , header. num_channels as i32 ) ;
130
125
131
126
let max_record = 5 * header. sample_rate * header. num_channels ;
132
127
let mut sample_count = 0 ;
133
128
' recv_loop: while let Some ( frame) = audio_stream. next ( ) . await {
134
- let data = resampler. remix_and_resample (
135
- & frame. data ,
136
- frame. samples_per_channel ,
137
- frame. num_channels ,
138
- frame. sample_rate ,
139
- header. num_channels ,
140
- header. sample_rate ,
141
- ) ;
142
-
143
- for sample in data {
129
+ for sample in frame. data . into_iter ( ) {
144
130
wav_writer. write_sample ( * sample) . await . unwrap ( ) ;
145
131
sample_count += 1 ;
146
132
0 commit comments