Управление списками воспроизведения синхронизации

[Функция, связанная с этой страницей, Медиаплеер Windows sdk, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Медиаплеер Windows 10 или более поздней версии использует списки воспроизведения для синхронизации цифровых файлов мультимедиа с переносными устройствами. В этом разделе объясняется, как работать с списками воспроизведения синхронизации.

В примере кода в этом разделе для отображения информации используются два элемента управления ListView. Первый элемент управления ListView (IDC_PLVIEW) отображает все списки воспроизведения в библиотеке Медиаплеер Windows, а списки воспроизведения синхронизации отображаются первыми. Списки воспроизведения синхронизации для выбранного устройства помечаются меткой проверка и сортируются в порядке приоритета синхронизации. Все остальные списки воспроизведения сняты. Элемент управления ListView был настроен для одного выбора. Порядок списков воспроизведения в элементе управления ListView определяет приоритет синхронизации. Проверенное состояние отдельного списка воспроизведения определяет, является ли он списком воспроизведения синхронизации для выбранного в данный момент устройства.

Второй элемент управления ListView (IDC_MEDIAVIEW) отображает элементы мультимедиа в выбранном списке воспроизведения. В двух дополнительных столбцах отображается текст, указывающий, был ли файл мультимедиа скопирован на устройство, а в случае сбоя — произошел ли сбой копирования из-за того, что цифровой файл мультимедиа не помещается.

В следующем примере кода показано, как инициализированы элементы управления 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;
}

Следующий массив строк содержит имена атрибутов синхронизации, используемых в примерах:

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")};

Следующая переменная-член содержит список воспроизведения, содержащий все списки воспроизведения в библиотеке Медиаплеер Windows. Каждый список воспроизведения представлен в виде элемента мультимедиа.

CComPtr<IWMPPlaylist> m_spPlaylist;

В следующих разделах приведен пример кода:

Работа с переносными устройствами