Administrar listas de reproducción de sincronización
[La característica asociada a esta página, Reproductor multimedia de Windows SDK, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de Reproductor multimedia de Windows SDK, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Reproductor multimedia de Windows 10 o posterior usa listas de reproducción para sincronizar archivos multimedia digitales con dispositivos portátiles. En esta sección se explica cómo trabajar con listas de reproducción de sincronización.
El código de ejemplo de esta sección usa dos controles ListView para mostrar información. El primer control ListView (IDC_PLVIEW) muestra todas las listas de reproducción de la biblioteca de Reproductor multimedia de Windows, con listas de reproducción de sincronización que aparecen primero. Las listas de reproducción de sincronización para el dispositivo seleccionado actualmente se marcan con una marca de verificación y se ordenan en orden de prioridad de sincronización. Todas las demás listas de reproducción están desactivadas. El control ListView se configuró para una selección única. El orden de las listas de reproducción en el control ListView determina su prioridad de sincronización. El estado activado de una lista de reproducción individual determina si es una lista de reproducción de sincronización para el dispositivo seleccionado actualmente.
El segundo control ListView (IDC_MEDIAVIEW) muestra los elementos multimedia en la lista de reproducción seleccionada. Dos columnas adicionales muestran texto que indica si el archivo multimedia digital se copió en el dispositivo y, en caso de error, si se produjo un error en la copia porque el archivo multimedia digital no se ajustaba.
En el código de ejemplo siguiente se muestra cómo se inicializan los controles ListView:
STDMETHODIMP CSyncSettings::InitListView()
{
m_hPlView = GetDlgItem(IDC_PLVIEW);
m_hMediaView = GetDlgItem(IDC_MEDIAVIEW);
ATLASSERT(m_hPlView);
ATLASSERT(m_hMediaView);
// Sync playlist information.
// Selection highlights all rows.
// Show checkboxes.
ListView_SetExtendedListViewStyleEx(m_hPlView, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
// Add headers.
LVCOLUMN lvc;
ZeroMemory(&lvc, sizeof(LVCOLUMN));
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.pszText = _T("Sync");
lvc.cx = 40;
ListView_InsertColumn(m_hPlView, lvc.iSubItem, &lvc);
lvc.iSubItem++;
lvc.pszText = _T("Playlist Name");
lvc.cx = 300;
ListView_InsertColumn(m_hPlView, lvc.iSubItem, &lvc);
// Media information.
// Selection highlights all rows.
ListView_SetExtendedListViewStyleEx(m_hMediaView, 0, LVS_EX_FULLROWSELECT);
// Add headers
ZeroMemory(&lvc, sizeof(LVCOLUMN));
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.pszText = _T("Media name");
lvc.cx = 150;
ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);
lvc.iSubItem++;
lvc.pszText = _T("On Device");
lvc.cx = 69;
ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);
lvc.iSubItem++;
lvc.pszText = _T("Fit?");
lvc.cx = 40;
ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);
return S_OK;
}
La siguiente matriz de cadenas contiene los nombres de los atributos de sincronización usados en los ejemplos:
static const TCHAR *g_szSyncAttributeNames[17] = {
_T("Not used"), // Do not access this one.
_T("Sync01"),
_T("Sync02"),
_T("Sync03"),
_T("Sync04"),
_T("Sync05"),
_T("Sync06"),
_T("Sync07"),
_T("Sync08"),
_T("Sync09"),
_T("Sync10"),
_T("Sync11"),
_T("Sync12"),
_T("Sync13"),
_T("Sync14"),
_T("Sync15"),
_T("Sync16")};
La siguiente variable miembro contiene una lista de reproducción que contiene todas las listas de reproducción de la biblioteca de Reproductor multimedia de Windows. Cada lista de reproducción se representa como un elemento multimedia.
CComPtr<IWMPPlaylist> m_spPlaylist;
En las secciones siguientes se proporciona código de ejemplo:
- Enumerar listas de reproducción de sincronización
- Ordenar listas de reproducción por prioridad de sincronización
- Enumerar los elementos multimedia
- Determinar el estado de sincronización de listas de reproducción
- Cambio de la prioridad de sincronización
Temas relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de