开始播放时rodio中的连接噪音

时间:2017-05-16 00:38:41

标签: audio rust

我使用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);

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

1 个答案:

答案 0 :(得分:1)

问题是您正在调用导致波形不连续的set_volume(0.1)。这会导致扬声器锥体在理论上瞬间移动,听起来像是流行音乐或咔嗒声。如果您删除set_volume行,则应解决问题。

相关问题