mirror of https://github.com/axmolengine/axmol.git
Added initialisation checks in pcm audio service (#18934)
This commit is contained in:
parent
275c37e430
commit
ec1fc92e37
|
@ -47,7 +47,7 @@ public:
|
||||||
PcmAudioService::PcmAudioService(SLEngineItf engineItf, SLObjectItf outputMixObject)
|
PcmAudioService::PcmAudioService(SLEngineItf engineItf, SLObjectItf outputMixObject)
|
||||||
: _engineItf(engineItf), _outputMixObj(outputMixObject), _playObj(nullptr),
|
: _engineItf(engineItf), _outputMixObj(outputMixObject), _playObj(nullptr),
|
||||||
_playItf(nullptr), _volumeItf(nullptr), _bufferQueueItf(nullptr), _numChannels(-1),
|
_playItf(nullptr), _volumeItf(nullptr), _bufferQueueItf(nullptr), _numChannels(-1),
|
||||||
_sampleRate(-1), _bufferSizeInBytes(0), _controller(nullptr)
|
_sampleRate(-1), _bufferSizeInBytes(0), _controller(nullptr), _isInitialised(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,19 +175,26 @@ bool PcmAudioService::init(AudioMixerController* controller, int numChannels, in
|
||||||
r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PLAYING);
|
r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PLAYING);
|
||||||
SL_RETURN_VAL_IF_FAILED(r, false, "SetPlayState failed");
|
SL_RETURN_VAL_IF_FAILED(r, false, "SetPlayState failed");
|
||||||
|
|
||||||
|
_isInitialised = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PcmAudioService::pause()
|
void PcmAudioService::pause()
|
||||||
{
|
{
|
||||||
|
if (_isInitialised)
|
||||||
|
{
|
||||||
SLresult r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PAUSED);
|
SLresult r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PAUSED);
|
||||||
SL_RETURN_IF_FAILED(r, "PcmAudioService::pause failed");
|
SL_RETURN_IF_FAILED(r, "PcmAudioService::pause failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PcmAudioService::resume()
|
void PcmAudioService::resume()
|
||||||
{
|
{
|
||||||
|
if (_isInitialised)
|
||||||
|
{
|
||||||
SLresult r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PLAYING);
|
SLresult r = (*_playItf)->SetPlayState(_playItf, SL_PLAYSTATE_PLAYING);
|
||||||
SL_RETURN_IF_FAILED(r, "PcmAudioService::resume failed");
|
SL_RETURN_IF_FAILED(r, "PcmAudioService::resume failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}} // namespace cocos2d { namespace experimental {
|
}} // namespace cocos2d { namespace experimental {
|
||||||
|
|
|
@ -71,6 +71,7 @@ private:
|
||||||
int _numChannels;
|
int _numChannels;
|
||||||
int _sampleRate;
|
int _sampleRate;
|
||||||
int _bufferSizeInBytes;
|
int _bufferSizeInBytes;
|
||||||
|
bool _isInitialised;
|
||||||
|
|
||||||
AudioMixerController* _controller;
|
AudioMixerController* _controller;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue