我正在使用rodio复制某些文件,其代码如下:

extern crate rodio;
use std::io::BufReader;
use std::time::Duration;
//..
let endpoint = rodio::get_default_endpoint().unwrap();

let file = std::fs::File::open("./sound/beep2.wav").unwrap();
let mut beep1 = rodio::play_once(&endpoint, BufReader::new(file)).unwrap();

beep1.set_volume(0.1);

开始播放时,开始时会听到类似连接声音的声音。该示例文件(beep2.wav)在正常播放器程序中播放时不会产生噪音。

我创建了替代代码,但噪音保持不变:
//test duracion inicio

use rodio::Sink;
use rodio::Source;

let mut sink = Sink::new(&endpoint);
let source = rodio::Decoder::new(BufReader::new(file)).unwrap();

sink.append(source);
sink.set_volume(0.01);

我究竟做错了什么?在复制开始时如何解决这种噪音?

最佳答案

问题是您正在调用set_volume(0.1),这会导致波形不连续。理论上讲,这会导致扬声器音盆发生瞬时运动,听起来像是爆裂声或喀哒声。如果删除set_volume行,它应该可以解决您的问题。

关于audio - 开始播放时 radio 中的连接噪音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43990790/

10-11 17:28