1
我想让音频静音一定的时间,比如说从开始到播放持续时间为2秒后,持续2秒。使音频静音一定时间
我想为50个不同的音频文件做不同的开始和停止时间来屏蔽。目前,我使用两个System.Timer
类的对象与第一次的时间间隔是为静音开始时间的第二个是停止时间,和我有50项if
条款来检查50个特刊,并设置其启动,并相应地停止计时器是这样的:
//50 checks
AudioFileReader ar;
Timer start_timer = new Timer(),stop_timer=new Timer();
public Form1()
{
InitializeComponent();
ar = new AudioFileReader(@"D:\SampleDegradedSpeech.wav");
var a = new WaveOut();
a.Init(ar);
a.Play();
start_timer.Interval = //start time;
stop_timer.Interval = //stop time;
start_timer.Tick += t1_Tick;
start_timer.Start();
stop_timer.Tick+=t2_Tick;
stop_timer.Start();
}
private void t2_Tick(object sender, EventArgs e)
{
ar.Volume = 1;
stop_timer.Stop();
}
private void t1_Tick(object sender, EventArgs e)
{
ar.Volume = 0;
start_timer.Stop();
}
有没有其他的/更好的方法呢? 两个定时器的任何替代品? 类似ar.mute(start,stop)
?
等待,你认真有50个独立的音频播放器?和50个单独的块?还是我完全误解? – furkle 2014-10-31 05:29:39
我正在为每个音频创建一个AudioFileReader类的新对象,如下所示: var obj = new AudioFileReader(string track); 此曲目即将作为我的方法的参数输入。 而目前它是50个开关盒,因为我不知道开关盒是更好还是更高效的,或者是阵列创建,就内存消耗和时间消耗而言。 对不起,我是一个新手:( – Chuker 2014-10-31 07:16:36
不,这没有错,它不是一个批评,我真的无法想象我需要50个音频剪辑同时播放的情况。如果没有其他人知道我明天会不会看到这个, – furkle 2014-10-31 07:18:35