Share via


Gestione delle playlist di sincronizzazione

[La funzionalità associata a questa pagina, Lettore multimediale Windows SDK, è una funzionalità legacy. È stata sostituita da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer anziché Lettore multimediale Windows SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Lettore multimediale Windows 10 o versioni successive usa playlist per sincronizzare i file multimediali digitali con i dispositivi portatili. Questa sezione illustra come usare le playlist di sincronizzazione.

Il codice di esempio in questa sezione usa due controlli ListView per visualizzare le informazioni. Il primo controllo ListView (IDC_PLVIEW) visualizza tutte le playlist nella libreria Lettore multimediale Windows, con le playlist di sincronizzazione che vengono visualizzate per prime. Le playlist di sincronizzazione per il dispositivo attualmente selezionato sono contrassegnate con un segno di spunta e vengono ordinate nell'ordine di priorità di sincronizzazione. Tutte le altre playlist sono deselezionate. Il controllo ListView è stato configurato per la selezione singola. L'ordine delle playlist nel controllo ListView determina la priorità di sincronizzazione. Lo stato controllato di una singola playlist determina se è una playlist di sincronizzazione per il dispositivo attualmente selezionato.

Il secondo controllo ListView (IDC_MEDIAVIEW) visualizza gli elementi multimediali nella playlist selezionata. Due colonne aggiuntive visualizzano testo che indica se il file multimediale digitale è stato copiato nel dispositivo e, in caso di errore, se la copia non è riuscita perché il file multimediale digitale non è adatto.

Il codice di esempio seguente mostra come vengono inizializzati i controlli 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 matrice seguente di stringhe contiene i nomi degli attributi di sincronizzazione usati negli esempi:

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 variabile membro seguente contiene una playlist contenente tutte le playlist nella libreria Lettore multimediale Windows. Ogni playlist è rappresentata come elemento multimediale.

CComPtr<IWMPPlaylist> m_spPlaylist;

Le sezioni seguenti forniscono codice di esempio:

Uso dei dispositivi portatili