[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
enum DayTimePeriod { AnteMeridiem = 0, PostMeridiem = 1 } int ToSeconds(int day, DayTimePeriod period, int hour, int minute, int second) { return day * 24 * 60 * 60 +(int)period * 12 * 60 * 60 + hour * 60 * 60 + minute * 60 + second; }
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; } } }
<iframe src="https://blog.cnobi.jp/v1/blog/user/118c300f2ee0ad311e5962b0167205f5/1309324795" frameborder="0" width="400" height="400" scrolling="no"></iframe>