[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; namespace XnaDynamicAudio { static class Program { static void Main(string[] args) { const int samplePerSecond = 8000; const int secondsToPlay = 3; using (DynamicSoundEffectInstance dynamicSound = new DynamicSoundEffectInstance(samplePerSecond, AudioChannels.Mono)) { byte[] buffer = createAWave(samplePerSecond, secondsToPlay, 440); dynamicSound.SubmitBuffer(buffer); FrameworkDispatcher.Update(); dynamicSound.Play(); System.Threading.Thread.Sleep(secondsToPlay * 1000); } } private static byte[] createAWave(int samplePerSecond, int secondsToPlay, int heltz) { byte[] buffer = new byte[samplePerSecond * secondsToPlay]; for (int i = 0; i < buffer.Length; i++) { buffer[i] = (byte)( byte.MaxValue / 4 * (1 + Math.Sin((Math.PI * heltz) * i / samplePerSecond)) ); } return buffer; } } }