修复Music播放状态判断问题

This commit is contained in:
Nomango 2018-09-02 00:02:49 +08:00
parent c40ac00ed9
commit 2c454d4a4c
2 changed files with 11 additions and 26 deletions

View File

@ -62,7 +62,6 @@ IXAudio2MasteringVoice * e2d::Music::XAudio2Tool::getMasteringVoice()
e2d::Music::Music()
: _opened(false)
, _playing(false)
, _wfx(nullptr)
, _hmmio(nullptr)
, _resBuffer(nullptr)
@ -77,7 +76,6 @@ e2d::Music::Music()
e2d::Music::Music(const e2d::String & filePath)
: _opened(false)
, _playing(false)
, _wfx(nullptr)
, _hmmio(nullptr)
, _resBuffer(nullptr)
@ -94,7 +92,6 @@ e2d::Music::Music(const e2d::String & filePath)
e2d::Music::Music(const Resource& res)
: _opened(false)
, _playing(false)
, _wfx(nullptr)
, _hmmio(nullptr)
, _resBuffer(nullptr)
@ -187,7 +184,6 @@ bool e2d::Music::open(const e2d::String & filePath)
}
_opened = true;
_playing = false;
return true;
}
@ -266,7 +262,6 @@ bool e2d::Music::open(const Resource& res)
}
_opened = true;
_playing = false;
return true;
}
@ -284,7 +279,9 @@ bool e2d::Music::play(int nLoopCount)
return false;
}
if (_playing)
XAUDIO2_VOICE_STATE state;
_voice->GetState(&state);
if (state.BuffersQueued)
{
stop();
}
@ -308,10 +305,7 @@ bool e2d::Music::play(int nLoopCount)
return false;
}
if (SUCCEEDED(hr = _voice->Start(0)))
{
_playing = true;
}
hr = _voice->Start(0);
return SUCCEEDED(hr);
}
@ -320,10 +314,7 @@ void e2d::Music::pause()
{
if (_voice)
{
if (SUCCEEDED(_voice->Stop()))
{
_playing = false;
}
_voice->Stop();
}
}
@ -331,10 +322,7 @@ void e2d::Music::resume()
{
if (_voice)
{
if (SUCCEEDED(_voice->Start()))
{
_playing = true;
}
_voice->Start();
}
}
@ -346,7 +334,6 @@ void e2d::Music::stop()
{
_voice->ExitLoop();
_voice->FlushSourceBuffers();
_playing = false;
}
}
}
@ -372,19 +359,18 @@ void e2d::Music::close()
SAFE_DELETE_ARRAY(_wfx);
_opened = false;
_playing = false;
}
bool e2d::Music::isPlaying() const
{
if (_opened && _voice)
{
return _playing;
}
else
{
return false;
XAUDIO2_VOICE_STATE state;
_voice->GetState(&state);
if (state.BuffersQueued)
return true;
}
return false;
}
IXAudio2SourceVoice * e2d::Music::getIXAudio2SourceVoice() const

View File

@ -154,7 +154,6 @@ protected:
protected:
bool _opened;
bool _playing;
DWORD _dwSize;
CHAR* _resBuffer;
BYTE* _waveData;