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