bool Player::SetSound(Sound& sound) { AudioDesc = sound.DataDescription(); if (FAILED(AudioDriver->CreateSourceVoice(&AudioSVoice, &AudioDesc))) return false; AudioBuffer.LoopBegin = 0; AudioBuffer.LoopCount = 0; AudioBuffer.LoopLength = 0; AudioBuffer.pContext = nullptr; AudioBuffer.PlayBegin = 0; AudioBuffer.PlayLength = 0; AudioBuffer.Flags = XAUDIO2_END_OF_STREAM; AudioBuffer.AudioBytes = sound.Size(); AudioBuffer.pAudioData = sound.Data(); if (FAILED(AudioSVoice->FlushSourceBuffers())) return false; if (FAILED(AudioSVoice->SubmitSourceBuffer(&AudioBuffer))) return false; return true; }