混合器是一种用于混合音频信号的设备,它可以将多个声音信号混合在一起,形成一个新的声音信号。它通常由输入通道、控制部件和输出通道组成。每个输入通道都有一个独立的声音信号,而控制部件则用于对这些声音信号进行处理,如增益、均衡、回声、滤波等。最后,所有的声音信号会在输出通道中组合起来,形成一个新的声音信号。
混合器在录音室中广泛使用,它能够将不同的乐器或话筒的声音进行改变、加工和组合,从而得到想要的效果。例如,录制歌曲时,你可以使用不同的乐器来录制每个乐器的声音;然后将所有乐器的声音通过改变其大小、位置、回声等来进行加工;最后将所有乐器的声音组合起来就能得到想要的效果。
此外,在舞厅中也会使用混合器来对不同乐器或话筒的声音进行加工。例如:你可以使用不同大小、位置、回声等来对不同乐器或话筒的声音进行加工;然后将所有乐器或话筒的声音进行加工之前再将它们重新整理并改变大小、位置、回声等来得到想要的效果。
// 使用Mixer Mixer mixer = AudioSystem.getMixer(null); // 设定 Mixer 的 Line Line.Info[] lineInfos = mixer.getTargetLineInfo(); // 打开 Line Line line = mixer.getLine(lineInfos[0]); line.open(); // 设定 Line 的 Control 参数 Control[] controls = line.getControls(); // 返回 Line 的 Control 數量 for (int i=0; i<controls.length; i++) { // 遍历 Control if (controls[i] instanceof GainControl) { // 如果是 GainControl GainControl gain = (GainControl)controls[i]; // 取得 GainControl float value = gain.getValue(); // 取得 GainControl 的 Value gain.setValue(value); // 设定 GainControl 的 Value } else if (controls[i] instanceof PanControl) { // 如果是 PanControl PanControl pan = (PanControl)controls[i]; // 取得 PanControl float value = pan.getValue(); // 取得 PanControl 的 Value pan.setValue(value); // 设定 PanContorl 的 Value } else if (controls[i] instanceof EchoControl) { // 如果是 EchoContorl EchoControl echo = (EchoContorl)controls[i]; // 取得 EchoContorl float value = echo.getValue(); // 取得 EchoContorl 的 Value echo.setValue(value); // 设定 EchoContorl 的 Value } else if (controls[i] instanceof FilterControl) { // 如果是 FilterContorl FilterContorl filter = (FilterContorl)controls[i]; // 取得 FilterContorl float value = filter.getValue(); // 取得 FilterContorl 的 Value filter.setValue(value); // 设定 FilterContorl 的 Value } }
如果你的整个网站中有几处小小的样式类似(例如一致的颜色和字体),那么使用变量来统一处理这种情况是非常不错的选择。但是当你的样式变得越来越复杂,你需要大段大段的重用样式的代码,独立的变量就没办法应付这种情况了。你可以通过sass
的混合器实现大段样式的重用。
混合器使用@mixin
标识符定义。看上去很像其他的CSS @
标识符,比如说@media
或者@font-face
。这个标识符给一大段样式赋予一个名字,这样你就可以轻易地通过引用这个名字重用这段样式。下边的这段sass
代码,定义了一个非常简单的混合器,目的是添加跨浏览器的圆角边框。
@mixin rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
然后就可以在你的样式表中通过@include
来使用这个混合器,放在你希望的任何地方。@include
调用会把混合器中的所有样式提取出来放在@include
被调用的地方。如果像下边这样写:
notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}
//sass最终生成:
.notice {
background-color: green;
border: 2px solid #00aa00;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
在.notice
中的属性border-radius
-moz-border-radius
和-webkit-border-radius
全部来自rounded-corners
这个混合器。这一节将介绍使用混合器来避免重复。通过使用参数,你可以使用混合器把你样式中的通用样式抽离出来,然后轻松地在其他地方重用。实际上,混合器太好用了,一不小心你可能会过度使用。大量的重用可能会导致生成的样式表过大,导致加载缓慢。所以,首先我们将讨论混合器的使用场景,避免滥用。
凡是css属性的标准值(比如说1px或者bold)可存在的地方,变量就可以使用。css生成时,变量会被它们的值所替代。之后,如果你需要...
描述您可以使用交互式shell轻松工作与SassScript。 您可以使用sass命令行和-i选项运行shell。句法$ sass -i使用上面的命令让我们...
描述多行注释中的插值在生成的CSS中解析。您可以在花括号中指定变量或属性名称。句法$var : value;例子下面的示例演示了在SCSS文...
描述@debug伪指令检测错误,并将SassScript表达式值显示到标准错误输出流。例子下面是使用扩展名 .scss 保存的样式表文件,它类...