MediaSessionManagerMac.cpp [plain text]
#include "config.h"
#include "PlatformMediaSessionManager.h"
#if USE(AUDIO_SESSION)
#include "AudioSession.h"
#include "Logging.h"
#include "Settings.h"
using namespace WebCore;
static const size_t kWebAudioBufferSize = 128;
static const size_t kLowPowerVideoBufferSize = 4096;
void PlatformMediaSessionManager::updateSessionState()
{
LOG(Media, "PlatformMediaSessionManager::updateSessionState() - types: Video(%d), Audio(%d), WebAudio(%d)", count(PlatformMediaSession::Video), count(PlatformMediaSession::Audio), count(PlatformMediaSession::WebAudio));
if (has(PlatformMediaSession::WebAudio))
AudioSession::sharedSession().setPreferredBufferSize(kWebAudioBufferSize);
else if ((has(PlatformMediaSession::Video) || has(PlatformMediaSession::Audio)) && Settings::lowPowerVideoAudioBufferSizeEnabled()) {
size_t bufferSize;
if (m_audioHardwareListener && m_audioHardwareListener->outputDeviceSupportsLowPowerMode())
bufferSize = kLowPowerVideoBufferSize;
else
bufferSize = kWebAudioBufferSize;
AudioSession::sharedSession().setPreferredBufferSize(bufferSize);
}
#if PLATFORM(IOS)
if (!Settings::shouldManageAudioSessionCategory())
return;
if (has(PlatformMediaSession::Video) || has(PlatformMediaSession::Audio))
AudioSession::sharedSession().setCategory(AudioSession::MediaPlayback);
else if (has(PlatformMediaSession::WebAudio))
AudioSession::sharedSession().setCategory(AudioSession::AmbientSound);
#endif
}
#endif // USE(AUDIO_SESSION)