选择要翻录的项目
[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
有时,用户不想翻录 CD 上的每一个曲目。 Windows 媒体播放器提供了一个接口,用于指定选择要翻录的曲目。 通常,在 CD 翻录应用程序中,有一个用户界面,允许用户选择 CD 上曲目列表中的检查框。
默认情况下,可能未选择某些曲目进行翻录。 如果曲目已在Windows 媒体播放器库中,则不会自动选择它进行翻录。 本部分中的第二个代码示例演示了如何绕过默认值,并手动选择用于翻录的曲目(如果已翻录)。
下面的代码示例演示如何确定是否选择了用于翻录的曲目:
HRESULT CMainDlg::IsTrackSelected(long lIndex, bool &bSelected)
{
// The track is selected unless the
// "SelectedForRip" attribute is true.
bSelected = true;
// bstrItemName and bstrVal are used for getItemInfo.
CComBSTR bstrItemName;
CComBSTR bstrVal;
// Get an IWMPMedia from the Playlist.
CComPtr<IWMPMedia> spMedia;
HRESULT hr = m_spPlaylist->get_item(lIndex, &spMedia);
// Check whether it is selected for ripping.
if (SUCCEEDED(hr))
{
hr = bstrItemName.Append("SelectedForRip");
}
if (SUCCEEDED(hr))
{
hr = spMedia->getItemInfo(
bstrItemName,
&bstrVal);
}
if (SUCCEEDED(hr))
{
// If getItemInfo("SelectedForRip") is not "True"
// then the track is not selected.
if (wcscmp(bstrVal.m_str, L"True"))
bSelected = false;
}
return hr;
}
下面的代码示例演示如何指定是否选择用于翻录的曲目。
HRESULT CMainDlg::SelectTrack (long lIndex, bool bSelected)
{
// bstrItemName and bstrVal are used for setItemInfo.
CComBSTR bstrItemName;
CComBSTR bstrVal;
// Get an IWMPMedia from the Playlist.
CComPtr<IWMPMedia> spMedia;
HRESULT hr = m_spPlaylist->get_item(lIndex, &spMedia);
// Select the track for ripping.
if (SUCCEEDED(hr))
{
hr = bstrItemName.Append("SelectedForRip");
}
if (SUCCEEDED(hr))
{
if (bSelected)
{
hr = bstrVal.Append("True");
}
else
{
hr = bstrVal.Append("False");
}
}
if (SUCCEEDED(hr))
{
hr = spMedia->setItemInfo(
bstrItemName,
bstrVal);
}
return hr;
}
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈