本文整理汇总了C++中IWMPMedia类的典型用法代码示例。如果您正苦于以下问题:C++ IWMPMedia类的具体用法?C++ IWMPMedia怎么用?C++ IWMPMedia使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IWMPMedia类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetCurrentSongFileName
CStdString CWmp_scrobbler::GetCurrentSongFileName()
{
USES_CONVERSION;
CStdString strSong;
IWMPMedia* pMedia = NULL;
BSTR bstrSong;
if(m_spCore)
{
m_spCore->get_currentMedia(&pMedia);
if(pMedia != NULL)
{
pMedia->get_sourceURL(&bstrSong);
char buf[1000];
EncodingUtils::UnicodeToUtf8(
bstrSong, -1,
buf, 999);
strSong = buf;
}
}
return strSong;
}
示例2: lsm
void CWmp2mirc::OnPlay()
{
// if we are locked (property page could be doing stuff, or the timer proc), then just ignore the request.
if(!m_cs.TryEnter())
{
LibCC::g_pLog->Message(_T("WMircP is busy; ignoring the play event."));
return;
}
IWMPMedia* pMedia = 0;
m_spCore->get_currentMedia(&pMedia);
if(!pMedia)
{
LibCC::g_pLog->Message(_T("WMircP could not get a pointer to the current media."));
}
else
{
CComBSTR url;
pMedia->get_sourceURL(&url);
LibCC::LogScopeMessage lsm(LibCC::Format("OnPlay %").qs((BSTR)url).Str());
m.OnPlay(pMedia, (PCWSTR)url);
pMedia->Release();
}
m_cs.Leave();
}
示例3: duration
qint64 QWmpPlayerControl::duration() const
{
double duration = 0.;
IWMPMedia *media = 0;
if (m_controls && m_controls->get_currentItem(&media) == S_OK) {
media->get_duration(&duration);
media->Release();
}
return duration * 1000;
}
示例4: removeMedia
bool QWmpPlaylist::removeMedia(int pos)
{
IWMPMedia *media = 0;
if (m_playlist->get_item(pos, &media) == S_OK) {
bool removed = m_playlist->removeItem(media) == S_OK;
media->Release();
return removed;
} else {
return false;
}
}
示例5: currentIndex
int QWmpPlaylistControl::currentIndex() const
{
int position = 0;
IWMPMedia *media = 0;
if (m_controls && m_player->get_currentMedia(&media) == S_OK) {
position = QWmpMetaData::value(media, QAutoBStr(L"PlaylistIndex")).toInt();
media->Release();
}
return position;
}
示例6: media
QMediaContent QWmpPlaylist::media(int pos) const
{
QMediaContent content;
IWMPMedia *media = 0;
if (m_playlist && m_playlist->get_item(pos, &media) == S_OK) {
content = QWmpMetaData::resources(media);
media->Release();
}
return content;
}
示例7: value
QVariant QWmpPlaylist::value(int index, const QString &key) const
{
QVariant v;
IWMPMedia *media = 0;
if (m_playlist && m_playlist->get_item(index, &media) == S_OK) {
v = QWmpMetaData::value(media, QAutoBStr(key));
media->Release();
}
return v;
}
示例8: keys
QStringList QWmpPlaylist::keys(int index) const
{
QStringList keys;
IWMPMedia *media = 0;
if (m_playlist && m_playlist->get_item(index, &media) == S_OK) {
keys = QWmpMetaData::keys(media);
media->Release();
}
return keys;
}
示例9: addMedia
bool QWmpPlaylist::addMedia(const QMediaContent &content)
{
bool appended = false;
IWMPMedia *media = 0;
if (!content.isNull() && m_playlist && m_player && m_player->newMedia(
QAutoBStr(content.canonicalUrl()), &media) == S_OK) {
appended = m_playlist->appendItem(media) == S_OK;
media->Release();
}
return appended;
}
示例10: setCurrentIndex
void QWmpPlaylistControl::setCurrentIndex(int position)
{
IWMPPlaylist *playlist = 0;
if (m_player->get_currentPlaylist(&playlist) == S_OK) {
IWMPMedia *media = 0;
if (playlist->get_item(position, &media) == S_OK) {
m_player->put_currentMedia(media);
media->Release();
}
playlist->Release();
}
}
示例11: insertMedia
bool QWmpPlaylist::insertMedia(int pos, const QMediaContent &content)
{
bool inserted = false;
IWMPMedia *media = 0;
if (m_playlist && m_player && m_player->newMedia(
QAutoBStr(content.canonicalUrl()), &media) == S_OK) {
inserted = m_playlist->insertItem(pos, media) == S_OK;
media->Release();
}
return inserted;
}
示例12: availablePlaybackRanges
QMediaTimeRange QWmpPlayerControl::availablePlaybackRanges() const
{
QMediaTimeRange ranges;
IWMPMedia *media = 0;
if (m_controls && m_controls->get_currentItem(&media) == S_OK) {
double duration = 0;
media->get_duration(&duration);
media->Release();
if(duration > 0)
ranges.addInterval(0, duration * 1000);
}
return ranges;
}
示例13: __uuidof
void QWmpPlayerControl::mediaChangeEvent(IDispatch *dispatch)
{
IWMPMedia *media = 0;
if (dispatch && dispatch->QueryInterface(
__uuidof(IWMPMedia), reinterpret_cast<void **>(&media)) == S_OK) {
IWMPMedia *currentMedia = 0;
if (m_controls && m_controls->get_currentItem(¤tMedia) == S_OK) {
VARIANT_BOOL isEqual = VARIANT_FALSE;
if (media->get_isIdentical(currentMedia, &isEqual) == S_OK && isEqual)
scheduleUpdate(DurationChanged);
currentMedia->Release();
}
media->Release();
}
}
示例14: GetTrackLength
int CWmp_scrobbler::GetTrackLength()
{
double dDuration = -1;
IWMPMedia* pMedia = NULL;
if(m_spCore)
{
m_spCore->get_currentMedia(&pMedia);
if(pMedia != NULL)
{
pMedia->get_duration(&dDuration);
}
}
return (int)dDuration;
}
示例15: GetCurrentSong
BOOL CWmp_scrobbler::GetCurrentSong(SONG_INFO* pSong)
{
USES_CONVERSION;
IWMPMedia* pMedia = NULL;
BSTR bstrValue;
//BSTR bstrName;
BOOL bRet = FALSE;
long lCount = 0;
if( (m_spCore) &&
(pSong != NULL))
{
m_spCore->get_currentMedia(&pMedia);
if(pMedia != NULL)
{
pMedia->get_attributeCount(&lCount);
/*
for(long i = 0; i <= lCount; i++)
{
pMedia->getAttributeName(i, &bstrName);
pMedia->getItemInfo(bstrName, &bstrValue);
PRINTF(DEBUG_INFO, "WMPMEDIA", "Attribute %s - value %s", W2A(bstrName), W2A(bstrValue));
}
// Better check for local/streaming for the future
pMedia->getItemInfo(L"type", &bstrValue);
*/
pMedia->getItemInfo(L"Author", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strArtist, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"Title", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strTrack, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"Album", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strAlbum, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"Genre", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strGenre, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"Comment", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strComment, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"SourceURL", &bstrValue);
EncodingUtils::UnicodeToUtf8(bstrValue, -1, pSong->m_strFileName, SONG_INFO_FIELD_SIZE);
pMedia->getItemInfo(L"Duration", &bstrValue);
pSong->m_nLength = atoi(W2A(bstrValue));
pMedia->getItemInfo(L"Track", &bstrValue);
pSong->m_nTrackNo = atoi(W2A(bstrValue));
pMedia->getItemInfo(L"Year", &bstrValue);
pSong->m_nYear = atoi(W2A(bstrValue));
bRet = TRUE;
}
}
return bRet;
}