myplayer.cpp
来自「symbian os s60 3rd音频播放器」· C++ 代码 · 共 101 行
CPP
101 行
#include "MyPlayer.h"
#include <aknappui.h>
#include "AudioPlayerAppView.h"
#include <eiklabel.h>
void CMyPlayer::CreatePlayerL(const TDesC& aFileName)
{
iPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(aFileName, *this);
iState = EInitialising;
}
void CMyPlayer::PlaySound()
{
if ( iState == EPrepared)
{
iPlayer->SetVolume(iPlayer->MaxVolume());
iPlayer->Play();
iState = EPlaying;
CEikLabel* label = static_cast<CEikLabel*>(iContainer->ComponentControl(0));
label->SetTextL(_L("Player is playing"));
label->SetExtentToWholeScreen();
label->DrawDeferred();
}
}
void CMyPlayer::StopSound()
{
if (iState == EPlaying)
{
iPlayer->Stop();
iState = EPrepared;
CEikLabel* label = static_cast<CEikLabel*>(iContainer->ComponentControl(0));
label->SetTextL(_L("Player is stoped"));
label->SetExtentToWholeScreen();
label->DrawDeferred();
}
}
void CMyPlayer::PauseSound()
{
if (iState == EPlaying)
{
if (iPlayer->Pause() == KErrNone)
{
iState = EPrepared;
CEikLabel* label = static_cast<CEikLabel*>(iContainer->ComponentControl(0));
label->SetTextL(_L("Player is paused"));
label->SetExtentToWholeScreen();
label->DrawDeferred();
}
}
}
CMyPlayer::~CMyPlayer()
{
if (iPlayer)
{
delete iPlayer;
iPlayer = NULL;
}
// if (iContainer)
// {
// delete iContainer;
// iContainer = NULL;
// }
}
//void CMyPlayer::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aTrailingSilence*/)
//{
// if (aError == KErrNone)
// {
// iState = EPrepared;
// PlaySound();
// }
//}
void CMyPlayer::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds&)
{
if (aError == KErrNone)
{
iState = EPrepared;
CEikLabel* label = static_cast<CEikLabel*>(iContainer->ComponentControl(0));
label->SetTextL(_L("Player is ready"));
label->SetExtentToWholeScreen();
label->DrawDeferred();
// PlaySound();
}
}
void CMyPlayer::MapcPlayComplete(TInt aError)
{
if (aError == KErrNone)
{
iState = EPrepared;
CEikLabel* label = static_cast<CEikLabel*>(iContainer->ComponentControl(0));
label->SetTextL(_L("Player is finished"));
label->SetExtentToWholeScreen();
label->DrawDeferred();
}
}
void CMyPlayer::SetContainer(CCoeControl* aContainer)
{
iContainer = static_cast<CAudioPlayerAppView*>(aContainer);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?