|
DirectSound = DirectX.DirectSoundCreate("");
DirectSound.SetCooperativeLevel(this.Handle.ToInt32(), CONST_DSSCLFLAGS.DSSCL_NORMAL);
DSBufferDesc.lFlags = (CONST_DSBCAPSFLAGS.DSBCAPS_CTRLFREQUENCY | CONST_DSBCAPSFLAGS.DSBCAPS_CTRLPAN | CONST_DSBCAPSFLAGS.DSBCAPS_CTRLVOLUME | CONST_DSBCAPSFLAGS.DSBCAPS_STATIC);
//DSBufferDesc.lFlags = CONST_DSBCAPSFLAGS.DSBCAPS_PRIMARYBUFFER;
DSBufferDesc.lBufferBytes = 0;
DSBufferDesc.lpwfxFormat = 0;
WaveFormat.nFormatTag = (short)CONST_DSOUND.WAVE_FORMAT_PCM;
WaveFormat.nChannels = 1; // 1= Mono, 2 = Stereo
WaveFormat.lSamplesPerSec = 22050; // Samples per second
WaveFormat.nBitsPerSample = 16; //16 =16bit, 8=8bit
WaveFormat.nBlockAlign = (short)(WaveFormat.nBitsPerSample / 8 * WaveFormat.nChannels);
WaveFormat.lAvgBytesPerSec = WaveFormat.lSamplesPerSec * WaveFormat.nBlockAlign;
//MessageBox.Show(Application.StartupPath + "\\bgmusic.wav");
DirectSoundBuffer = DirectSound.CreateSoundBufferFromFile(Application.StartupPath + "\\bgmusic.wav" ,ref DSBufferDesc, out WaveFormat);
DirectSoundBuffer.Play(CONST_DSBPLAYFLAGS.DSBPLAY_DEFAULT);
//////////////////////////////////////////////////
我把上面的DSBufferDesc.lFlags改为CONST_DSBCAPSFLAGS.DSBCAPS_PRIMARYBUFFER就出问题,不该可以播放音乐,可是鼠标点到其他的窗体上面就没声音了。改如何修改呢???
[em20] |
|