最初に、私は私の問題に関連するすべてのトピックをここで、stackoverflow で読んだ (そしてもちろんググった) と言いたいのですが、それらの研究は私の問題に対する解決策を提供しませんでした。私は Windows Phone 用のアプリを作成しており、2 つのサウンドを同時に再生する必要がありますが、このコードは機能しません。これは、2 つのサウンドの間にわずかではあるが顕著な違いがあり、プロジェクトに知覚できるほどの遅延があってはならないためです。
Stream s1 = TitleContainer.OpenStream("C.wav");
Stream s2 = TitleContainer.OpenStream("C1.wav");
SoundEffectInstance sci = sc.CreateInstance();
SoundEffectInstance sci1 = sc1.CreateInstance();
sci.Play();
sci1.Play();
2 つの wav ファイルの単純なミックスも実行しようとしましたが、理由がわかりません。(ArgumentException - 指定されたストリームに有効な PCM モノラルまたはステレオ Wave データが含まれていることを確認してください。 - SoundEffect.FromStream(WAVEFile.Mix(s1, s2)) の呼び出し時にスローされます。
public static Stream Mix(Stream in1,Stream in2)
{
BinaryWriter bw;
bw = new BinaryWriter(new MemoryStream());
byte[] header = new byte[44];
in1.Read(header, 0, 44);
bw.Write(header);
in2.Seek(44, SeekOrigin.Begin);
BinaryReader r1 = new BinaryReader(in1);
BinaryReader r2 = new BinaryReader(in2);
while (in1.Position != in1.Length)
{
bw.Write((short)(r1.ReadInt16() + r2.ReadInt16()));
}
r1.Dispose();
r2.Dispose();
bw.BaseStream.Seek(0, SeekOrigin.Begin);
return bw.BaseStream;
}
Stream s1 = TitleContainer.OpenStream("C.wav");
Stream s2 = TitleContainer.OpenStream("C1.wav");
s3 = SoundEffect.FromStream(WAVEFile.Mix(s1, s2));
では、同時に2つの音を鳴らす方法を知っている人はいますか?