2
DirectSoundのマネージドバージョンで後方に音を読むことは可能ですか? 他のライブラリがあれば簡単に作成できますか?DirectSoundで後方に音を読む
DirectSoundのマネージドバージョンで後方に音を読むことは可能ですか? 他のライブラリがあれば簡単に作成できますか?DirectSoundで後方に音を読む
NAudioのWaveFileReaderクラスとWaveFileWriterクラスを使用して、WAVファイルを逆転させることができます。 WaveFormatのBlockAlignプロパティを使用して、単一のサンプル(ステレオ16ビットオーディオの場合は4)のすべてのバイトを読み取る必要があります。
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で実装しました。 –
ファイルをストリームとして開き、ヘッダー情報を取得し、ヘッダー情報で新しい一時ファイルを作成し、最後からストリームを書き込んでみます。 tempmファイルを新しいdirectsoundオブジェクトとして開き、それを再生してください – Jim
これは私が現在実装しようとしている解決策です。私は簡単な方法がないかどうか疑問に思いました。 ところで、これを回答として投稿していないのはなぜですか? –