Mengakses konten GrupRumah

API penting

Akses konten yang disimpan di folder GrupRumah pengguna, termasuk gambar, musik, dan video.

Prasyarat

  • Memahami pemrograman asinkron untuk aplikasi Platform Windows Universal (UWP)

    Anda dapat mempelajari cara menulis aplikasi asinkron di C# atau Visual Basic, lihat Memanggil API asinkron di C# atau Visual Basic. Untuk mempelajari cara menulis aplikasi asinkron di C++, lihat Pemrograman asinkron di C++.

  • Deklarasi kemampuan aplikasi

    Untuk mengakses konten HomeGroup, komputer pengguna harus menyiapkan HomeGroup dan aplikasi Anda harus memiliki setidaknya salah satu kemampuan berikut: picturesLibrary, musicLibrary, atau videosLibrary. Saat aplikasi Anda mengakses folder HomeGroup, aplikasi hanya akan melihat pustaka yang sesuai dengan kemampuan yang dideklarasikan dalam manifes aplikasi Anda. Untuk mempelajari selengkapnya, lihat Izin akses file.

    Catatan

     Konten di pustaka Dokumen HomeGroup tidak terlihat oleh aplikasi Anda terlepas dari kemampuan yang dideklarasikan dalam manifes aplikasi Anda dan terlepas dari pengaturan berbagi pengguna.  

  • Memahami cara menggunakan pemilih file

    Anda biasanya menggunakan pemilih file untuk mengakses file dan folder di HomeGroup. Untuk mempelajari cara menggunakan pemilih file, lihat Membuka file dan folder dengan pemilih.

  • Memahami kueri file dan folder

    Anda dapat menggunakan kueri untuk menghitung file dan folder di GrupRumah. Untuk mempelajari tentang kueri file dan folder, lihat Menghitung dan mengkueri file dan folder.

Buka pemilih file di HomeGroup

Ikuti langkah-langkah ini untuk membuka instans pemilih file yang memungkinkan pengguna memilih file dan folder dari HomeGroup:

  1. Membuat dan mengkustomisasi pemilih file

    Gunakan FileOpenPicker untuk membuat pemilih file, lalu atur suggestedStartLocation pemilih ke PickerLocationId.HomeGroup. Atau, atur properti lain yang relevan dengan pengguna dan aplikasi Anda. Untuk panduan untuk membantu Anda memutuskan cara mengkustomisasi pemilih file, lihat Panduan dan daftar periksa untuk pemilih file

    Contoh ini membuat pemilih file yang terbuka di HomeGroup, menyertakan file dengan jenis apa pun, dan menampilkan file sebagai gambar mini:

    Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;
    picker.FileTypeFilter.Clear();
    picker.FileTypeFilter.Add("*");
    
  2. Tampilkan pemilih file dan proses file yang dipilih.

    Setelah Anda membuat dan menyesuaikan pemilih file, biarkan pengguna memilih satu file dengan memanggil FileOpenPicker.PickSingleFileAsync, atau beberapa file dengan memanggil FileOpenPicker.PickMultipleFilesAsync.

    Contoh ini menampilkan pemilih file untuk memungkinkan pengguna memilih satu file:

    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
    
    if (file != null)
    {
        // Do something with the file.
    }
    else
    {
        // No file returned. Handle the error.
    }   
    

Cari file di GrupRumah

Bagian ini memperlihatkan cara menemukan item HomeGroup yang cocok dengan istilah kueri yang disediakan oleh pengguna.

  1. Dapatkan istilah kueri dari pengguna.

    Di sini kita mendapatkan istilah kueri yang telah dimasukkan pengguna ke dalam kontrol TextBox yang disebut searchQueryTextBox:

    string queryTerm = this.searchQueryTextBox.Text;    
    
  2. Atur opsi kueri dan filter pencarian.

    Opsi kueri menentukan bagaimana hasil pencarian diurutkan, sementara filter pencarian menentukan item mana yang disertakan dalam hasil pencarian.

    Contoh ini mengatur opsi kueri yang mengurutkan hasil pencarian berdasarkan relevansi lalu tanggal diubah. Filter pencarian adalah istilah kueri yang dimasukkan pengguna di langkah sebelumnya:

    Windows.Storage.Search.QueryOptions queryOptions =
            new Windows.Storage.Search.QueryOptions
                (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null);
    queryOptions.UserSearchFilter = queryTerm.Text;
    Windows.Storage.Search.StorageFileQueryResult queryResults =
            Windows.Storage.KnownFolders.HomeGroup.CreateFileQueryWithOptions(queryOptions);    
    
  3. Jalankan kueri dan proses hasilnya.

    Contoh berikut menjalankan kueri pencarian di HomeGroup dan menyimpan nama file yang cocok sebagai daftar string.

    System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files =
        await queryResults.GetFilesAsync();
    
    if (files.Count > 0)
    {
        outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n";
        foreach (Windows.Storage.StorageFile file in files)
        {
            outputString += file.Name + "\n";
        }
    }    
    

Cari HomeGroup untuk file bersama pengguna tertentu

Bagian ini memperlihatkan kepada Anda cara menemukan file HomeGroup yang dibagikan oleh pengguna tertentu.

  1. Dapatkan kumpulan pengguna HomeGroup.

    Setiap folder tingkat pertama di HomeGroup mewakili pengguna HomeGroup individual. Jadi, untuk mendapatkan koleksi pengguna HomeGroup, panggil GetFoldersAsync mengambil folder HomeGroup tingkat atas.

    System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFolder> hgFolders =
        await Windows.Storage.KnownFolders.HomeGroup.GetFoldersAsync();    
    
  2. Temukan folder pengguna target, lalu buat kueri file yang terlingkup ke folder pengguna tersebut.

    Contoh berikut berulang melalui folder yang diambil untuk menemukan folder pengguna target. Kemudian, ini mengatur opsi kueri untuk menemukan semua file di folder, diurutkan terlebih dahulu berdasarkan relevansi lalu berdasarkan tanggal yang diubah. Contoh membangun string yang melaporkan jumlah file yang ditemukan, bersama dengan nama file.

    bool userFound = false;
    foreach (Windows.Storage.StorageFolder folder in hgFolders)
    {
        if (folder.DisplayName == targetUserName)
        {
            // Found the target user's folder, now find all files in the folder.
            userFound = true;
            Windows.Storage.Search.QueryOptions queryOptions =
                new Windows.Storage.Search.QueryOptions
                    (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null);
            queryOptions.UserSearchFilter = "*";
            Windows.Storage.Search.StorageFileQueryResult queryResults =
                folder.CreateFileQueryWithOptions(queryOptions);
            System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files =
                await queryResults.GetFilesAsync();
    
            if (files.Count > 0)
            {
                string outputString = "Searched for files belonging to " + targetUserName + "'\n";
                outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n";
                foreach (Windows.Storage.StorageFile file in files)
                {
                    outputString += file.Name + "\n";
                }
            }
        }
    }    
    

Streaming video dari HomeGroup

Ikuti langkah-langkah ini untuk melakukan streaming konten video dari HomeGroup:

  1. Sertakan MediaElement di aplikasi Anda.

    MediaElement memungkinkan Anda memutar kembali konten audio dan video di aplikasi Anda. Untuk informasi selengkapnya tentang pemutaran audio dan video, lihat Membuat kontrol transportasi kustom dan Audio, video, dan kamera.

    <Grid x:Name="Output" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1">
        <MediaElement x:Name="VideoBox" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0" Width="400" Height="300"/>
    </Grid>    
    
  2. Buka pemilih file di HomeGroup dan terapkan filter yang menyertakan file video dalam format yang didukung aplikasi Anda.

    Contoh ini mencakup file .mp4 dan .wmv dalam pemilih buka file.

    Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;
    picker.FileTypeFilter.Clear();
    picker.FileTypeFilter.Add(".mp4");
    picker.FileTypeFilter.Add(".wmv");
    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();   
    
  3. Buka pilihan file pengguna untuk akses baca, dan atur aliran file sebagai sumber untukMediaElement, lalu putar file.

    if (file != null)
    {
        var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
        VideoBox.SetSource(stream, file.ContentType);
        VideoBox.Stop();
        VideoBox.Play();
    }
    else
    {
        // No file selected. Handle the error here.
    }