我试图播放一个方向音频声音,但我似乎无法放大正弦波
fn main() {
use std::thread::sleep;
use std::time::Duration;
use ambisonic::{rodio, AmbisonicBuilder};
let scene = AmbisonicBuilder::default().build();
let source = rodio::source::SineWave::new(440).amplify(0.5);
let mut sound = scene.play_at(source, [50.0, 1.0, 0.0]);
// move sound from right to left
sound.set_velocity([-10.0, 0.0, 0.0]);
for i in 0..1000 {
sound.adjust_position([50.0 - i as f32 / 10.0, 1.0, 0.0]);
sleep(Duration::from_millis(10));
}
sound.set_velocity([0.0, 0.0, 0.0]);
}
此代码抛出此错误:
let source = rodio::source::SineWave::new(440).scale_amplitude(0.5);
| ^^^^^^^^^^^^^^^ method not found in `SineWave`
如果我删除放大功能,它工作正常有人知道为什么我有这个错误吗?
我在找一个可以放大的正弦波。
1条答案
按热度按时间e4eetjau1#
ambisonic当前有rodio的0.13版本作为依赖项。如果您的
Cargo.toml
中同时列出了rodio
和ambisonic
,则导入的traits可能会相互冲突。由于
ambisonic
重新导出rodio
,如果您将Source
trait导入为:然后代码编译: