本文整理汇总了C++中MediaPlayer::GetPlayListPos方法的典型用法代码示例。如果您正苦于以下问题:C++ MediaPlayer::GetPlayListPos方法的具体用法?C++ MediaPlayer::GetPlayListPos怎么用?C++ MediaPlayer::GetPlayListPos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MediaPlayer
的用法示例。
在下文中一共展示了MediaPlayer::GetPlayListPos方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnButton
BOOL PlayListPane::OnButton(UINT idx)
{
TRACEST(_T("PlayListPane::OnCommand"), idx);
switch (idx)
{
case MI_ShowNumbers:
m_PlayList.SetConfigurationOption(CPlayListListCtrl::C_ShowNumbers,
m_PlayList.GetConfigurationOption(CPlayListListCtrl::C_ShowNumbers) == 0 ? 1 : 0);
break;
default:
{
PrgAPI* pAPI = PRGAPI();
MediaPlayer* pPlayer = pAPI->GetMediaPlayer();
MenuManager* pMM = pAPI->GetMenuManager();
MenuCommandsEnum cmd = (MenuCommandsEnum) idx;
if (!pMM->HandlePlayerCommands(*pPlayer, cmd, pPlayer->GetPlayListPos()) || (pMM->HandleGeneralCommands(cmd)))
return FALSE;
}
}
return TRUE;;
}
示例2: OnStateChanged
BOOL CTeenSpiritDlg::OnStateChanged(UINT stateMessage)
{
if (stateMessage == SM_MediaChanged)
{
MediaPlayListItem mpli;
PrgAPI* pAPI = PRGAPI();
MediaPlayer* pMP = pAPI->GetMediaPlayer();
INT nPos = pMP->GetPlayListPos();
if (nPos != -1 && pMP->GetPlayListItem(mpli, nPos))
{
if (mpli.artist == NULL) mpli.artist = _T("");
if (mpli.title == NULL) mpli.title = mpli.url;
//=== Show Tray ToolTip
//pAPI->GetTrayToolTipDlg()->OnMediaChanged(pAPI->GetOption(OPT_GEN_ShowToolTipOnMediaChanged));
//==== NOTIFIERS
TrackerTrack track;
track.artist = mpli.artist;
track.title = mpli.title;
track.rating = mpli.rating;
track.length = (UINT)pMP->GetMediaLength();
pAPI->GetTracker()->SubmitTrack(ITracker::ACT_Started, track, GetCurrentUnixTimeStamp());
}
return TRUE;
}
// case SM_MediaChanged:
// {
// MediaPlayer* pPlayer = pAPI->GetMediaPlayer();
// INT curMediaIdx = pPlayer->GetPlayListPos();
// if (curMediaIdx >= 0)
// {
// MediaPlayListItem mpli;
// if (pPlayer->GetPlayListItem(mpli, curMediaIdx))
// {
// //==== NOTIFIERS
// if (mpli.artist == NULL) mpli.artist = _T("");
// if (mpli.title == NULL) mpli.title = mpli.url;
// TrackerTrack track;
// track.artist = mpli.artist;
// track.title = mpli.title;
// track.rating = mpli.rating;
// track.length = (UINT)pPlayer->GetMediaLength();
// pAPI->GetTracker()->SubmitTrack(ITracker::ACT_Started, track, GetCurrentUnixTimeStamp());
// //==== Info Control
// if (pAPI->GetOption(OPT_VIEWER_Auto))// m_ViewerPane.GetAutoViewerMode())
// {
// TrackTypesEnum tt = GetTrackType(mpli.url);
// if (tt < TTYPE_FIRSTVIDEO)
// {
// m_ViewerPane.SetMode(CViewerPane::MOD_NormalInfo);
// }
// else if (tt < TTYPE_FIRSTVIRTUAL)
// {
// m_ViewerPane.SetMode(CViewerPane::MOD_Visualizations);
// }
// else
// {
// m_ViewerPane.SetMode(CViewerPane::MOD_Browser);
// }
// }
// if (m_ViewerPane.GetMode() == CViewerPane::MOD_NormalInfo && pAPI->GetOption(OPT_VIEWER_SyncWithPlayer))
// {
// MediaPlayListItem mpli;
// if (pPlayer->GetPlayListItem(mpli, curMediaIdx))
// {
// FullTrackRecordSP rec;
// if (pAPI->GetSQLManager()->GetFullTrackRecordByLocation(rec, mpli.url))
// {
// CInfoCtrl* pIC = m_ViewerPane.GetInfoControl();
// if (pIC != NULL)
// {
// pIC->SetActiveItem(rec);
// pIC->SetStyle(IT_Track);
// pIC->Refresh(100);
// }
// }
// }
// }
// }
//
// }
//
// }
//
// break;
return FALSE;
}
示例3: Draw
void TrayToolTipDlg::Draw(CDC& dc)
{
TRACEST(_T("TrayToolTipDlg::Draw"));
CRect rcMemDC(0, 0, m_ff.GetWidth(), m_ff.GetHeight());
PrgAPI* pAPI = PRGAPI();
MediaPlayer* pMP = pAPI->GetMediaPlayer();
//FullTrackRecordSP m_rec;
MediaPlayListItem mpli;
BOOL mpliIsValid = FALSE;
INT playListPos = pMP->GetPlayListPos();
if (playListPos != -1)
mpliIsValid = pMP->GetPlayListItem(mpli, playListPos);
CRect rcCalc(rcMemDC);
dc.SetBkMode(TRANSPARENT);
dc.SelectStockObject(NULL_BRUSH);
dc.SelectStockObject(DC_PEN);
INT maxTextWidth = 0;
m_pictureWidth = 0;
INT textLine1Width = 0;
INT textLine2Width = 0;
using namespace Gdiplus;
Graphics graphics(dc.GetSafeHdc());
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
COLORREF outlineColor = RGB(220,220,220);
INT r = GetRValue(m_colors[COL_TitleText]) + GetGValue(m_colors[COL_TitleText]) + GetBValue(m_colors[COL_TitleText]);
if (r > (256 * 3) / 2)
outlineColor = RGB(30,30,30);
if (mpliIsValid == FALSE)
{
Gdiplus::SolidBrush br(GdiplusUtilities::COLORREF2Color(m_colors[COL_Bk]));
graphics.FillRectangle(&br, GdiplusUtilities::RECT2GdiplusRect(rcMemDC));
//rcMemDC.bottom = GetTotalHeight();
//CFont* pOldFont = dc.SelectObject(&m_font[FNT_Title]);
//dc.SetTextColor(m_colors[COL_TitleText]);
//rcMemDC.right = m_minWidth;
//dc.DrawText(CTeenSpiritApp::sAppTitle, -1, &rcMemDC, DT_SINGLELINE | DT_END_ELLIPSIS | DT_VCENTER | DT_NOPREFIX | DT_CENTER);
//dc.SelectObject(pOldFont);
//maxTextWidth = rcCalc.Width();
CRect rcItem = rcMemDC;
rcItem.bottom = GetTotalHeight() - 30;
rcItem.right = m_minWidth;
LOGFONT lf;
m_font[FNT_Title].GetLogFont(&lf);
GdiplusUtilities::DrawTextOutline(graphics, CTeenSpiritApp::sAppTitle, _tcslen(CTeenSpiritApp::sAppTitle), &rcItem,
DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_CENTER,
lf, m_colors[COL_TitleText], outlineColor, 2);
}
else
{
SQLManager* pSM = pAPI->GetSQLManager();
FullTrackRecordSP rec;
BOOL bRecIsValid = pSM->GetFullTrackRecordByLocation(rec, mpli.url);
if (bRecIsValid)
{
mpli.artist = rec->artist.name.c_str();
mpli.title = rec->track.name.c_str();
mpli.rating = rec->track.rating;
if (mpli.length == 0)
mpli.length = rec->track.duration;
}
//=== Picture
if (bRecIsValid)
{
LocalPictureManager* pLPM = pAPI->GetLocalPictureManager();
SQLManager* pSM = pAPI->GetSQLManager();
LPCTSTR imgPath = NULL;
FullAlbumRecordSP albumRec;
if (pSM->GetFullAlbumRecordByID(albumRec, rec->album.ID))
{
imgPath = pLPM->GetMainAlbumPicture(albumRec->artist.name.c_str(), albumRec->album.name.c_str(), TRUE);
if (imgPath == NULL)
imgPath = pLPM->GetMainArtistPicture(albumRec->artist.name.c_str(), TRUE);
}
if (imgPath != NULL)
{
//.........这里部分代码省略.........
示例4: WindowProc
LRESULT CTeenSpiritDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_GETTEXT && wParam > GTB_First && wParam < GTB_Last && lParam != 0)//External commands interface
{
INT ret = 0;
LPCTSTR str = NULL;
LPTSTR externalBuffer = (LPTSTR) lParam;
externalBuffer[0] = 0;
MediaPlayer* pPlayer = PRGAPI()->GetMediaPlayer();
INT curTrack = pPlayer->GetPlayListPos();
if (curTrack >= 0)
{
MediaPlayListItem mpli;
if (pPlayer->GetPlayListItem(mpli, curTrack))
{
switch (wParam)
{
case GTB_Artist:
str = mpli.artist;
break;
case GTB_Title:
str = mpli.title;
break;
default:
ASSERT(0);
break;
}
}
}
if (str == NULL)
return 0;
_tcsncpy(externalBuffer, str, wParam);
return _tcslen(str);
}
else if (message == WM_COMMAND)//External commands interface
{
MediaPlayer* pPlayer = PRGAPI()->GetMediaPlayer();
if (pPlayer != NULL)
{
BOOL bHandled = TRUE;
switch (wParam)
{
case EXTERNALCOMMAND_Play: //Returns 0 on success
pPlayer->Start();
break;
case EXTERNALCOMMAND_Pause: //Returns 0 on success
pPlayer->Pause();
break;
case EXTERNALCOMMAND_Stop: //Returns 0 on success
pPlayer->Stop();
break;
case EXTERNALCOMMAND_Next: //Returns 0 on success
pPlayer->Next();
break;
case GTB_Artist:
case EXTERNALCOMMAND_Previous: //Returns 0 on success
pPlayer->Previous();
break;
case EXTERNALCOMMAND_ShowHidePlayer: //lparam=1 to show. 0 to hide. Returns 0 on success
if (IsWindowVisible() && lParam == 0)
PostMessage(WM_SYSCOMMAND, SC_MINIMIZE);
else if (!IsWindowVisible() && lParam == 1)
PostMessage(WM_SYSCOMMAND, SC_RESTORE);
break;
case EXTERNALCOMMAND_GetVolume: //Return vol 0-100. Returns 0-100 on success
return pPlayer->GetVolume();
case EXTERNALCOMMAND_SetVolume: //lParam is the new value(0-100) retunrns 0 on success
pPlayer->SetVolume(lParam);
PRGAPI()->GetStateManager()->SendMessage(SM_PlayerVolumeChanged);
break;
case EXTERNALCOMMAND_GetMute: //Returns 1 on mute ON. 0 on Mute off
return pPlayer->GetMute();
case EXTERNALCOMMAND_SetMute: //lparam=1 for mute ON. 0 Returns 0 on success
pPlayer->SetMute(lParam != 0);
PRGAPI()->GetStateManager()->PostMessage(SM_PlayerSettingsChanged);
break;
case EXTERNALCOMMAND_GetMediaLength: //returns the number of seconds
return INT(pPlayer->GetMediaLength());
case EXTERNALCOMMAND_GetMediaPos: //returns the number of seconds
return INT(pPlayer->GetMediaPos());
case EXTERNALCOMMAND_SetMediaPos: //lparam=1 for mute ON. 0 Returns 0 on success
pPlayer->SetMediaPos(lParam);
break;
default:
bHandled = FALSE;
}
if (bHandled)
return 0;
}
}
else if (message == WM_KEYDOWN || message == WM_SYSKEYDOWN)
{
TRACE(_T("CTeenSpiritDlg::WindowProc. KeyDown: %d-%d\r\n"), wParam, lParam);
}
return CDialog::WindowProc(message, wParam, lParam);
}