2
是否可以使用DirectSound的託管版本向後朗讀聲音? 如果不是有另一個庫允許輕鬆地嗎?用DirectSound向後朗讀聲音
是否可以使用DirectSound的託管版本向後朗讀聲音? 如果不是有另一個庫允許輕鬆地嗎?用DirectSound向後朗讀聲音
您可以使用NAudio中的WaveFileReader和WaveFileWriter類來反轉WAV文件。您需要確保使用WaveFormat的BlockAlign屬性讀取單個樣本的所有字節(4爲立體聲16位音頻)。
public static void ReverseWaveFile(string inputFile, string outputFile)
{
using (WaveFileReader reader = new WaveFileReader(inputFile))
{
int blockAlign = reader.WaveFormat.BlockAlign;
using (WaveFileWriter writer = new WaveFileWriter(outputFile, reader.WaveFormat))
{
byte[] buffer = new byte[blockAlign];
long samples = reader.Length/blockAlign;
for (long sample = samples - 1; sample >= 0; sample--)
{
reader.Position = sample * blockAlign;
reader.Read(buffer, 0, blockAlign);
writer.WriteData(buffer, 0, blockAlign);
}
}
}
}
嘗試打開文件作爲流,獲取頭信息,創建一個新的臨時文件與頭信息,並從結尾寫入流。打開臨時文件作爲一個新的directsound對象,並嘗試播放它 – Jim 2009-08-03 08:10:06
這是我目前試圖實現的解決方案。我想知道是否沒有更簡單的方法。 順便說一句,爲什麼你沒有發佈這個答案? – 2009-08-03 08:53:05