📄 audiorecorderengine.cpp
字号:
/*
* ============================================================================
* Name : CAudioRecorderEngine from AudioRecorderEngine.cpp
* Part of : AudioRecorder
* Created : 31.01.2006 by ToBeReplacedByAuthor
* Implementation notes:
*
* Version :
* Copyright: ToBeReplacedByCopyright
* ============================================================================
*/
// INCLUDE FILES
#include "AudioRecorderEngine.h"
// ================= MEMBER FUNCTIONS =======================
// Two-phased constructor.
CAudioRecorderEngine* CAudioRecorderEngine::NewL(MObserver& aObserver)
{
CAudioRecorderEngine* self = new (ELeave) CAudioRecorderEngine( aObserver );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop();
return self;
}
// destructor
CAudioRecorderEngine::~CAudioRecorderEngine()
{
Stop();
}
//
void CAudioRecorderEngine::MoscoStateChangeEvent(CBase*/* aObject*/,
TInt/* aPreviousState*/, TInt aCurrentState, TInt aError)
{
if(aError!=KErrNone)
{
iAudioRecorder->Stop();
iAudioRecorder->Close();
delete iAudioRecorder;
iAudioRecorder = NULL;
iObserver.OnComplete(aError);
return;
}
switch(aCurrentState)
{
case CMdaAudioClipUtility::EOpen:
{
iAudioRecorder->SetAudioDeviceMode(CMdaAudioRecorderUtility::ELocal);
iAudioRecorder->SetGain(iAudioRecorder->MaxGain());
// record from the beginning of file
iAudioRecorder->SetPosition(TTimeIntervalMicroSeconds(0));
iAudioRecorder->CropL();
iAudioRecorder->RecordL();
break;
}
case CMdaAudioClipUtility::ERecording:
{
break;
}
default:
{
break;
}
}
}
//
void CAudioRecorderEngine::RecordL(const TFileName& aFileName)
{
Stop();
iAudioRecorder = CMdaAudioRecorderUtility::NewL(*this);
iLocation.iName = aFileName;
iCodec.iBits = TMdaPcmWavCodec::E16BitPcm;
iSettings.iCaps = TMdaAudioDataSettings::ESampleRateFixed
| TMdaAudioDataSettings::ESampleRate8000Hz
| TMdaAudioDataSettings::EChannelsMono;
iSettings.iSampleRate = 8000;
iSettings.iChannels = 1;
// Transfer ownership
iAudioRecorder->OpenL(&iLocation, &iFormat, &iCodec, &iSettings);
}
//
void CAudioRecorderEngine::Stop()
{
if (iAudioRecorder!=NULL)
{
iAudioRecorder->Stop();
iAudioRecorder->Close();
delete iAudioRecorder;
iAudioRecorder = NULL;
iObserver.OnComplete(KErrNone);
}
}
// constructor
CAudioRecorderEngine::CAudioRecorderEngine(MObserver& aObserver)
: iObserver(aObserver)
{
}
// EPOC default constructor can leave.
void CAudioRecorderEngine::ConstructL()
{
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -