Inicio automático con Reproducción automáticaAuto-launching with AutoPlay

Puedes usar Reproducción automática para ofrecer tu aplicación como una opción cuando un usuario conecte un dispositivo a su PC.You can use AutoPlay to provide your app as an option when a user connects a device to their PC. Esto incluye dispositivos que no son de volumen, como una cámara o un reproductor multimedia, o dispositivos de volumen, como una unidad USB, una tarjeta SD o un DVD.This includes non-volume devices such as a camera or media player, or volume devices such as a USB thumb drive, SD card, or DVD. También puedes usar Reproducción automática para ofrecer tu aplicación como una opción cuando los usuarios compartan archivos entre dos equipos mediante proximidad (pulsación).You can also use AutoPlay to offer your app as an option when users share files between two PCs by using proximity (tapping).

Nota:    Si es un fabricante de dispositivos y desea asociar la aplicación de dispositivo Microsoft Store como controlador de reproducción automática para el dispositivo, puede identificar esa aplicación en los metadatos del dispositivo.Note  If you are a device manufacturer and you want to associate your Microsoft Store device app as an AutoPlay handler for your device, you can identify that app in the device metadata. Para obtener más información, consulte reproducción automática para aplicaciones de dispositivos Microsoft Store.For more info, see AutoPlay for Microsoft Store device apps.

Registrar una aplicación para el contenido de Reproducción automáticaRegister for AutoPlay content

Puedes registrar aplicaciones como opciones para eventos de contenido de Reproducción automática.You can register apps as options for AutoPlay content events. Los eventos de contenido de Reproducción automática se generan cuando se inserta en el equipo un dispositivo de volumen, como una tarjeta de memoria de cámara, una unidad USB o un DVD.AutoPlay content events are raised when a volume device such as a camera memory card, thumb drive, or DVD is inserted into the PC. Aquí te mostramos cómo identificar tu aplicación como una opción de Reproducción automática cuando se inserta un dispositivo de volumen de una cámara.Here we show how to identify your app as an AutoPlay option when a volume device from a camera is inserted.

En este tutorial, creaste una aplicación que muestra archivos de imagen o los copia a Imágenes.In this tutorial, you created an app that displays image files or copies them to Pictures. Registraste la aplicación para el evento de contenido ShowPicturesOnArrival de Reproducción automática.You registered the app for the AutoPlay ShowPicturesOnArrival content event.

Reproducción automática también genera eventos de contenido para contenido compartido entre equipos mediante proximidad (pulsación).AutoPlay also raises content events for content shared between PCs using proximity (tapping). Puedes usar los pasos y el código de esta sección para administrar archivos compartidos entre equipos que usan la proximidad.You can use the steps and code in this section to handle files that are shared between PCs that use proximity. En la siguiente tabla se enumeran los eventos de contenido de Reproducción automática disponibles para compartir contenido al usar la proximidad.The following table lists the AutoPlay content events that are available for sharing content by using proximity.

AcciónAction Evento de contenido de Reproducción automáticaAutoPlay content event
Uso compartido de músicaSharing music PlayMusicFilesOnArrivalPlayMusicFilesOnArrival
Uso compartido de vídeosSharing videos PlayVideoFilesOnArrivalPlayVideoFilesOnArrival

  Cuando se comparten archivos mediante proximidad, la propiedad Files del objeto FileActivatedEventArgs contiene una referencia a una carpeta raíz que incluye todos los archivos compartidos.When files are shared by using proximity, the Files property of the FileActivatedEventArgs object contains a reference to a root folder that contains all of the shared files.

Paso 1: Crear un nuevo proyecto y agregar declaraciones de Reproducción automáticaStep 1: Create a new project and add AutoPlay declarations

  1. Abre Microsoft Visual Studio y selecciona Nuevo proyecto en el menú Archivo.Open Microsoft Visual Studio and select New Project from the File menu. En la sección Visual C# , en Windows, seleccione aplicación vacía (Windows universal).In the Visual C# section, under Windows, select Blank App (Universal Windows). Asigna un nombre a la aplicación AutoPlayDisplayOrCopyImages y haz clic en Aceptar.Name the app AutoPlayDisplayOrCopyImages and click OK.
  2. Abra el archivo package. appxmanifest y seleccione la pestaña capacidades . Seleccione las capacidades de la biblioteca de imágenes y almacenamiento extraíble .Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage and Pictures Library capabilities. Esta acción otorga a la aplicación acceso a dispositivos de almacenamiento extraíbles para la memoria de la cámara y acceso a las imágenes locales.This gives the app access to removable storage devices for camera memory, and access to local pictures.
  3. En el archivo de manifiesto, seleccione la pestaña declaraciones . En la lista desplegable declaraciones disponibles , seleccione contenido de reproducción automática y haga clic en Agregar.In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Content and click Add. Selecciona el elemento Contenido de Reproducción automática que se agregó a la lista Declaraciones admitidas.Select the new AutoPlay Content item that was added to the Supported Declarations list.
  4. Una declaración de Contenido de Reproducción automática identifica tu aplicación como opción cuando Reproducción automática genera un evento de contenido.An AutoPlay Content declaration identifies your app as an option when AutoPlay raises a content event. El evento se basa en el contenido de un dispositivo de volumen como un DVD o una unidad USB.The event is based on the content of a volume device such as a DVD or a thumb drive. Reproducción automática examina el contenido del dispositivo de volumen y determina qué evento de contenido generará.AutoPlay examines the content of the volume device and determines which content event to raise. Si la raíz del volumen contiene una carpeta DCIM, AVCHD o PRIVAte \ ACHD, o si un usuario ha habilitado elegir qué hacer con cada tipo de medio en el panel de control de reproducción automática, y las imágenes se encuentran en la raíz del volumen, la reproducción automática genera el evento ShowPicturesOnArrival .If the root of the volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder, or if a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel and pictures are found in the root of the volume, then AutoPlay raises the ShowPicturesOnArrival event. En la sección Acciones de inicio, especifica los valores de la Tabla 1 a continuación para la primera acción de inicio.In the Launch Actions section, enter the values from Table 1 below for the first launch action.
  5. En la sección Acciones de inicio del elemento Contenido de reproducción automática, haz clic en Agregar nuevo para agregar una segunda acción de inicio.In the Launch Actions section for the AutoPlay Content item, click Add New to add a second launch action. Escribe los valores de la Tabla 2 a continuación para la segunda acción de inicio.Enter the values in Table 2 below for the second launch action.
  6. En la lista desplegable Declaraciones disponibles, selecciona Asociaciones de tipo de archivo y haz clic en Agregar.In the Available Declarations drop-down list, select File Type Associations and click Add. En las propiedades de la nueva declaración de asociaciones de tipo de archivo , establezca el campo nombre para Mostrar en copia de reproducción automática o mostrar imágenes y el campo nombre en Image _ association1.In the Properties of the new File Type Associations declaration, set the Display Name field to AutoPlay Copy or Show Images and the Name field to image_association1. En la sección Tipos de archivo admitidos, haz clic en Agregar nuevo.In the Supported File Types section, click Add New. Establece el campo Tipo de archivo en .jpg.Set the File Type field to .jpg. En la sección Tipos de archivo admitidos, establece el campo Tipo de archivo de la nueva asociación de archivo en .png.In the Supported File Types section, set the File Type field of the new file association to .png. Para los eventos de contenido, Reproducción automática filtra todos los tipos de archivo que no están asociados explícitamente a la aplicación.For content events, AutoPlay filters out any file types that are not explicitly associated with your app.
  7. Guarde y cierre el archivo de manifiesto.Save and close the manifest file.

Tabla 1Table 1

ConfiguraciónSetting ValueValue
VerboVerb showshow
Nombre para mostrar de la acciónAction Display Name Mostrar imágenesShow Pictures
Evento de contenidoContent Event ShowPicturesOnArrivalShowPicturesOnArrival

La configuración Nombre para mostrar de la acción identifica la cadena que Reproducción automática muestra para tu aplicación.The Action Display Name setting identifies the string that AutoPlay displays for your app. La configuración Verbo identifica un valor que se pasa a la aplicación para la opción seleccionada.The Verb setting identifies a value that is passed to your app for the selected option. Puede especificar varias acciones de inicio para un evento de reproducción automática y usar el valor de verbo para determinar qué opción ha seleccionado un usuario para la aplicación.You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. Puede indicar qué opción seleccionó el usuario mediante la comprobación de la propiedad Verb de los argumentos de evento de inicio pasados a la aplicación.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Puede usar cualquier valor para el valor Verb , excepto, Open, que está reservado.You can use any value for the Verb setting except, open, which is reserved.

Tabla 2Table 2

ConfiguraciónSetting ValueValue
VerboVerb copycopy
Nombre para mostrar de la acciónAction Display Name Copiar imágenes en la bibliotecaCopy Pictures Into Library
Evento de contenidoContent Event ShowPicturesOnArrivalShowPicturesOnArrival

Paso 2: Agregar la interfaz de usuario XAMLStep 2: Add XAML UI

Abre el archivo MainPage.xaml y agrega el siguiente XAML a la sección <Grid> predeterminada.Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<TextBlock FontSize="18">File List</TextBlock>
<TextBlock x:Name="FilesBlock" HorizontalAlignment="Left" TextWrapping="Wrap"
           VerticalAlignment="Top" Margin="0,20,0,0" Height="280" Width="240" />
<Canvas x:Name="FilesCanvas" HorizontalAlignment="Left" VerticalAlignment="Top"
        Margin="260,20,0,0" Height="280" Width="100"/>

Paso 3: Agregar código de inicializaciónStep 3: Add initialization code

El código de este paso comprueba el valor de verbo en la propiedad Verb, que es uno de los argumentos de inicio que se transmiten a la aplicación durante el evento OnFileActivated.The code in this step checks the verb value in the Verb property, which is one of the startup arguments passed to the app during the OnFileActivated event. Después, el código llama a un método relacionado con la opción seleccionada por el usuario.The code then calls a method related to the option that the user selected. Para el evento de memoria de la cámara, Reproducción automática transmite la carpeta raíz del almacenamiento de la cámara a la aplicación.For the camera memory event, AutoPlay passes the root folder of the camera storage to the app. Puedes recuperar esta carpeta del primer elemento de la propiedad Files.You can retrieve this folder from the first element of the Files property.

Abre el archivo App.xaml.cs y agrega el siguiente código a la clase App.Open the App.xaml.cs file and add the following code to the App class.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
    if (args.Verb == "show")
    {
        Frame rootFrame = (Frame)Window.Current.Content;
        MainPage page = (MainPage)rootFrame.Content;

        // Call DisplayImages with root folder from camera storage.
        page.DisplayImages((Windows.Storage.StorageFolder)args.Files[0]);
    }

    if (args.Verb == "copy")
    {
        Frame rootFrame = (Frame)Window.Current.Content;
        MainPage page = (MainPage)rootFrame.Content;

        // Call CopyImages with root folder from camera storage.
        page.CopyImages((Windows.Storage.StorageFolder)args.Files[0]);
    }

    base.OnFileActivated(args);
}

Nota:    Los DisplayImages CopyImages métodos y se agregan en los pasos siguientes.Note  The DisplayImages and CopyImages methods are added in the following steps.

Paso 4: Agregar código para mostrar imágenesStep 4: Add code to display images

En el archivo MainPage.xaml.cs, agregue el código siguiente a la clase mainpage .In the MainPage.xaml.cs file add the following code to the MainPage class.

async internal void DisplayImages(Windows.Storage.StorageFolder rootFolder)
{
    // Display images from first folder in root\DCIM.
    var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
    var folderList = await dcimFolder.GetFoldersAsync();
    var cameraFolder = folderList[0];
    var fileList = await cameraFolder.GetFilesAsync();
    for (int i = 0; i < fileList.Count; i++)
    {
        var file = (Windows.Storage.StorageFile)fileList[i];
        WriteMessageText(file.Name + "\n");
        DisplayImage(file, i);
    }
}

async private void DisplayImage(Windows.Storage.IStorageItem file, int index)
{
    try
    {
        var sFile = (Windows.Storage.StorageFile)file;
        Windows.Storage.Streams.IRandomAccessStream imageStream =
            await sFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
        Windows.UI.Xaml.Media.Imaging.BitmapImage imageBitmap =
            new Windows.UI.Xaml.Media.Imaging.BitmapImage();
        imageBitmap.SetSource(imageStream);
        var element = new Image();
        element.Source = imageBitmap;
        element.Height = 100;
        Thickness margin = new Thickness();
        margin.Top = index * 100;
        element.Margin = margin;
        FilesCanvas.Children.Add(element);
    }
    catch (Exception e)
    {
       WriteMessageText(e.Message + "\n");
    }
}

// Write a message to MessageBlock on the UI thread.
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;

private async void WriteMessageText(string message, bool overwrite = false)
{
    await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            if (overwrite)
                FilesBlock.Text = message;
            else
                FilesBlock.Text += message;
        });
}

Paso 5: Agregar código para copiar imágenesStep 5: Add code to copy images

En el archivo MainPage.xaml.cs, agregue el código siguiente a la clase mainpage .In the MainPage.xaml.cs file add the following code to the MainPage class.

async internal void CopyImages(Windows.Storage.StorageFolder rootFolder)
{
    // Copy images from first folder in root\DCIM.
    var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
    var folderList = await dcimFolder.GetFoldersAsync();
    var cameraFolder = folderList[0];
    var fileList = await cameraFolder.GetFilesAsync();

    try
    {
        var folderName = "Images " + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
        Windows.Storage.StorageFolder imageFolder = await
            Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync(folderName);

        foreach (Windows.Storage.IStorageItem file in fileList)
        {
            CopyImage(file, imageFolder);
        }
    }
    catch (Exception e)
    {
        WriteMessageText("Failed to copy images.\n" + e.Message + "\n");
    }
}

async internal void CopyImage(Windows.Storage.IStorageItem file,
                              Windows.Storage.StorageFolder imageFolder)
{
    try
    {
        Windows.Storage.StorageFile sFile = (Windows.Storage.StorageFile)file;
        await sFile.CopyAsync(imageFolder, sFile.Name);
        WriteMessageText(sFile.Name + " copied.\n");
    }
    catch (Exception e)
    {
        WriteMessageText("Failed to copy file.\n" + e.Message + "\n");
    }
}

Paso 6: Compila y ejecuta la aplicaciónStep 6: Build and run the app

  1. Presiona F5 para compilar e implementar la aplicación (en modo de depuración).Press F5 to build and deploy the app (in debug mode).
  2. Para ejecutar la aplicación, inserta una tarjeta de memoria de una cámara u otro dispositivo de almacenamiento de una cámara en el equipo.To run your app, insert a camera memory card or another storage device from a camera into your PC. A continuación, selecciona una de las opciones de evento de contenido que especificaste en el archivo package.appxmanifest de la lista de opciones de Reproducción automática.Then, select one of the content event options that you specified in your package.appxmanifest file from the AutoPlay list of options. Este código de muestra solo muestra o copia imágenes de la carpeta DCIM de una tarjeta de memoria de una cámara.This sample code only displays or copies pictures in the DCIM folder of a camera memory card. Si la tarjeta de memoria de la cámara almacena imágenes en una carpeta de ACHD de carga AVCHD o privada \ , deberá actualizar el código según corresponda.If your camera memory card stores pictures in an AVCHD or PRIVATE\ACHD folder, you will need to update the code accordingly. Nota:    Si no tiene una tarjeta de memoria de cámara, puede usar una unidad flash si tiene una carpeta llamada DCIM en la raíz y si la carpeta DCIM tiene una subcarpeta que contiene imágenes.Note  If you don't have a camera memory card, you can use a flash drive if it has a folder named DCIM in the root and if the DCIM folder has a subfolder that contains images.

Registro para el dispositivo de reproducción automáticaRegister for an AutoPlay device

Puedes registrar aplicaciones como opciones para eventos de dispositivo de Reproducción automática.You can register apps as options for AutoPlay device events. Los eventos de dispositivo de Reproducción automática se generan cuando se conecta un dispositivo a un equipo.AutoPlay device events are raised when a device is connected to a PC.

Aquí te enseñamos a identificar tu aplicación como una opción de Reproducción automática cuando una cámara se conecta a un equipo.Here we show how to identify your app as an AutoPlay option when a camera is connected to a PC. La aplicación se registra como un controlador para el evento \ ImageSourceAutoPlay de WPD .The app registers as a handler for the WPD\ImageSourceAutoPlay event. Esto es un evento común que genera el sistema de dispositivos portátiles de Windows (WPD) cuando las cámaras y otros dispositivos de imagen notifican que son un ImageSource con MTP.This is a common event that the Windows Portable Device (WPD) system raises when cameras and other imaging devices notify it that they are an ImageSource using MTP. Para obtener más información, consulta Dispositivos portátiles de Windows.For more info, see Windows Portable Devices.

Importante    Las API de Windows. Devices. portable. StorageDevice forman parte de la familia de dispositivos de escritorio.Important  The Windows.Devices.Portable.StorageDevice APIs are part of the desktop device family. Las aplicaciones pueden usar estas API solamente en los dispositivos de Windows 10 de la familia de dispositivos de escritorio como, por ejemplo, los equipos.Apps can use these APIs only on Windows 10 devices in the desktop device family, such as PCs.

 

Paso 1: Crear un nuevo proyecto y agregar declaraciones de Reproducción automáticaStep 1: Create a new project and add AutoPlay declarations

  1. Abre Visual Studio y selecciona Nuevo proyecto en el menú Archivo.Open Visual Studio and select New Project from the File menu. En la sección Visual C# , en Windows, seleccione aplicación vacía (Windows universal).In the Visual C# section, under Windows, select Blank App (Universal Windows). Asigne a la aplicación el nombre ** _ AutoPlayDevice** y haga clic en Aceptar.Name the app AutoPlayDevice_Camera and click OK.
  2. Abra el archivo package. appxmanifest y seleccione la pestaña capacidades . Seleccione la capacidad de almacenamiento extraíble .Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage capability. Esto proporcionar a la aplicación acceso a los datos de la cámara dispositivo de volumen de almacenamiento extraíble.This gives the app access to the data on the camera as a removable storage volume device.
  3. En el archivo de manifiesto, seleccione la pestaña declaraciones . En la lista desplegable declaraciones disponibles , seleccione dispositivo de reproducción automática y haga clic en Agregar.In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Device and click Add. Selecciona el nuevo elemento Dispositivo de Reproducción automática que se agregó a la lista Declaraciones admitidas.Select the new AutoPlay Device item that was added to the Supported Declarations list.
  4. Una declaración Dispositivo de Reproducción automática identifica a la aplicación como opción cuando Reproducción automática genera un evento de dispositivo para eventos conocidos.An AutoPlay Device declaration identifies your app as an option when AutoPlay raises a device event for known events. En la sección Acciones de inicio, especifica los valores de la tabla a continuación para la primera acción de inicio.In the Launch Actions section, enter the values in the table below for the first launch action.
  5. En la lista desplegable Declaraciones disponibles, selecciona Asociaciones de tipo de archivo y haz clic en Agregar.In the Available Declarations drop-down list, select File Type Associations and click Add. En las propiedades de la nueva declaración de asociaciones de tipo de archivo , establezca el campo nombre para Mostrar en Mostrar imágenes de la cámara y el campo nombre en cámara _ association1.In the Properties of the new File Type Associations declaration, set the Display Name field to Show Images from Camera and the Name field to camera_association1. En la sección Tipos de archivo admitidos, haz clic en Agregar nuevo (si es necesario).In the Supported File Types section, click Add New (if needed). Establece el campo Tipo de archivo en .jpg.Set the File Type field to .jpg. En la sección Tipos de archivo admitidos, vuelve a hacer clic en Agregar nuevo.In the Supported File Types section, click Add New again. Establece el campo Tipo de archivo de la nueva asociación de archivos en .png.Set the File Type field of the new file association to .png. Para los eventos de contenido, Reproducción automática filtra todos los tipos de archivo que no están asociados explícitamente a la aplicación.For content events, AutoPlay filters out any file types that are not explicitly associated with your app.
  6. Guarde y cierre el archivo de manifiesto.Save and close the manifest file.
ConfiguraciónSetting ValueValue
VerboVerb showshow
Nombre para mostrar de la acciónAction Display Name Mostrar imágenesShow Pictures
Evento de contenidoContent Event \ImageSource ImageSourceWPD\ImageSource

La configuración Nombre para mostrar de la acción identifica la cadena que Reproducción automática muestra para tu aplicación.The Action Display Name setting identifies the string that AutoPlay displays for your app. La configuración Verbo identifica un valor que se pasa a la aplicación para la opción seleccionada.The Verb setting identifies a value that is passed to your app for the selected option. Puede especificar varias acciones de inicio para un evento de reproducción automática y usar el valor de verbo para determinar qué opción ha seleccionado un usuario para la aplicación.You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. Puede indicar qué opción seleccionó el usuario mediante la comprobación de la propiedad Verb de los argumentos de evento de inicio pasados a la aplicación.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Puede usar cualquier valor para el valor Verb , excepto, Open, que está reservado.You can use any value for the Verb setting except, open, which is reserved. Para ver un ejemplo del uso de varios verbos en una sola aplicación, consulta Registrar una aplicación para el contenido de Reproducción automática.For an example of using multiple verbs in a single app, see Register for AutoPlay content.

Paso 2: Agregar una referencia de ensamblado para las extensiones de escritorioStep 2: Add assembly reference for the desktop extensions

Las API necesarias para obtener acceso al almacenamiento en un dispositivo portátil de Windows, Windows.Devices.Portable.StorageDevice, forman parte de la familia de dispositivos de escritorio.The APIs required to access storage on a Windows Portable Device, Windows.Devices.Portable.StorageDevice, are part of the desktop desktop device family. Esto significa que se necesita un ensamblado especial para usar las API y esas llamadas solo funcionarán en un dispositivo de la familia de dispositivos de escritorio (por ejemplo, un equipo).This means a special assembly is required to use the APIs and those calls will only work on a device in the desktop device family (such as a PC).

  1. En el Explorador de soluciones, haz clic con el botón secundario en Referencias y, entonces, selecciona Agregar referencia...In Solution Explorer, right click on References and then Add Reference....
  2. Expande Windows universal y haz clic en Extensiones.Expand Universal Windows and click Extensions.
  3. Después, selecciona extensiones de escritorio de Windows para la UWP y haz clic en Aceptar.Then select Windows Desktop Extensions for the UWP and click OK.

Paso 3: Agregar la interfaz de usuario XAMLStep 3: Add XAML UI

Abre el archivo MainPage.xaml y agrega el siguiente XAML a la sección <Grid> predeterminada.Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<StackPanel Orientation="Vertical" Margin="10,0,-10,0">
    <TextBlock FontSize="24">Device Information</TextBlock>
    <StackPanel Orientation="Horizontal">
        <TextBlock x:Name="DeviceInfoTextBlock" FontSize="18" Height="400" Width="400" VerticalAlignment="Top" />
        <ListView x:Name="ImagesList" HorizontalAlignment="Left" Height="400" VerticalAlignment="Top" Width="400">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <Image Source="{Binding Path=Source}" />
                        <TextBlock Text="{Binding Path=Name}" />
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapGrid Orientation="Horizontal" ItemHeight="100" ItemWidth="120"></WrapGrid>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    </StackPanel>
</StackPanel>

Paso 4: Agregar código de activaciónStep 4: Add activation code

El código de este paso hace referencia a la cámara como StorageDevice al pasar el identificador de información del dispositivo de la cámara al método FromId.The code in this step references the camera as a StorageDevice by passing the device information Id of the camera to the FromId method. El identificador de información del dispositivo de la cámara se obtiene difundiendo primero los argumentos del evento como DeviceActivatedEventArgs y después obteniendo el valor de la propiedad DeviceInformationId.The device information Id of the camera is obtained by first casting the event arguments as DeviceActivatedEventArgs, and then getting the value from the DeviceInformationId property.

Abre el archivo App.xaml.cs y agrega el siguiente código a la clase App.Open the App.xaml.cs file and add the following code to the App class.

protected override void OnActivated(IActivatedEventArgs args)
{
   if (args.Kind == ActivationKind.Device)
   {
      Frame rootFrame = null;
      // Ensure that the current page exists and is activated
      if (Window.Current.Content == null)
      {
         rootFrame = new Frame();
         rootFrame.Navigate(typeof(MainPage));
         Window.Current.Content = rootFrame;
      }
      else
      {
         rootFrame = Window.Current.Content as Frame;
      }
      Window.Current.Activate();

      // Make sure the necessary APIs are present on the device
      bool storageDeviceAPIPresent =
      Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Devices.Portable.StorageDevice");

      if (storageDeviceAPIPresent)
      {
         // Reference the current page as type MainPage
         var mPage = rootFrame.Content as MainPage;

         // Cast the activated event args as DeviceActivatedEventArgs and show images
         var deviceArgs = args as DeviceActivatedEventArgs;
         if (deviceArgs != null)
         {
            mPage.ShowImages(Windows.Devices.Portable.StorageDevice.FromId(deviceArgs.DeviceInformationId));
         }
      }
      else
      {
         // Handle case where APIs are not present (when the device is not part of the desktop device family)
      }

   }

   base.OnActivated(args);
}

Nota:    El ShowImages método se agrega en el paso siguiente.Note  The ShowImages method is added in the following step.

Paso 5: Agregar código para mostrar información de dispositivoStep 5: Add code to display device information

Puedes obtener información de la cámara en las propiedades de la clase StorageDevice.You can obtain information about the camera from the properties of the StorageDevice class. El código de este paso muestra al usuario el nombre del dispositivo y otra información cuando la aplicación se ejecuta.The code in this step displays the device name and other info to the user when the app runs. El código llama después a los métodos GetImageList y GetThumbnail, que agregarás en el paso siguiente, para mostrar miniaturas de las imágenes almacenadas en la cámara.The code then calls the GetImageList and GetThumbnail methods, which you will add in the next step, to display thumbnails of the images stored on the camera

En el archivo MainPage.xaml.cs, agrega el siguiente código a la clase MainPage.In the MainPage.xaml.cs file, add the following code to the MainPage class.

private Windows.Storage.StorageFolder rootFolder;

internal async void ShowImages(Windows.Storage.StorageFolder folder)
{
    DeviceInfoTextBlock.Text = "Display Name = " + folder.DisplayName + "\n";
    DeviceInfoTextBlock.Text += "Display Type =  " + folder.DisplayType + "\n";
    DeviceInfoTextBlock.Text += "FolderRelativeId = " + folder.FolderRelativeId + "\n";

    // Reference first folder of the device as the root
    rootFolder = (await folder.GetFoldersAsync())[0];
    var imageList = await GetImageList(rootFolder);

    foreach (Windows.Storage.StorageFile img in imageList)
    {
        ImagesList.Items.Add(await GetThumbnail(img));
    }
}

Nota:    Los GetImageList GetThumbnail métodos y se agregan en el paso siguiente.Note  The GetImageList and GetThumbnail methods are added in the following step.

Paso 6: Agregar código para mostrar imágenesStep 6: Add code to display images

El código de este paso muestra las miniaturas de las imágenes almacenadas en la cámara.The code in this step displays thumbnails of the images stored on the camera. El código realiza llamadas asincrónicas a la cámara para obtener la imagen de miniatura.The code makes asynchronous calls to the camera to get the thumbnail image. Sin embargo, la siguiente llamada asincrónica no ocurre hasta que se complete la anterior.However, the next asynchronous call doesn't occur until the previous asynchronous call completes. Esto garantiza que solo se haga una solicitud a la cámara cada vez.This ensures that only one request is made to the camera at a time.

En el archivo MainPage.xaml.cs, agrega el siguiente código a la clase MainPage.In the MainPage.xaml.cs file, add the following code to the MainPage class.

async private System.Threading.Tasks.Task<List<Windows.Storage.StorageFile>> GetImageList(Windows.Storage.StorageFolder folder)
{
    var result = await folder.GetFilesAsync();
    var subFolders = await folder.GetFoldersAsync();
    foreach (Windows.Storage.StorageFolder f in subFolders)
        result = result.Union(await GetImageList(f)).ToList();

    return (from f in result orderby f.Name select f).ToList();
}

async private System.Threading.Tasks.Task<Image> GetThumbnail(Windows.Storage.StorageFile img)
{
    // Get the thumbnail to display
    var thumbnail = await img.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.SingleItem,
                                                100,
                                                Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);

    // Create a XAML Image object bind to on the display page
    var result = new Image();
    result.Height = thumbnail.OriginalHeight;
    result.Width = thumbnail.OriginalWidth;
    result.Name = img.Name;
    var imageBitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
    imageBitmap.SetSource(thumbnail);
    result.Source = imageBitmap;

    return result;
}

Paso 7: Compila y ejecuta la aplicaciónStep 7: Build and run the app

  1. Presiona F5 para compilar e implementar la aplicación (en modo de depuración).Press F5 to build and deploy the app (in debug mode).
  2. Para ejecutar la aplicación, conecta una cámara al equipo.To run your app, connect a camera to your machine. Después, selecciona la aplicación en la lista de opciones de Reproducción automática.Then select the app from the AutoPlay list of options. Nota:    No todas las cámaras anuncian el evento de dispositivo de reproducción automática del ** \ ImageSource de WPD** .Note  Not all cameras advertise for the WPD\ImageSource AutoPlay device event.

Configurar el almacenamiento extraíbleConfigure removable storage

Puedes identificar un dispositivo de volumen, como una tarjeta de memoria o una unidad USB, como dispositivo de Reproducción automática cuando el dispositivo de volumen se conecte al equipo.You can identify a volume device such as a memory card or thumb drive as an AutoPlay device when the volume device is connected to a PC. Esto es particularmente útil cuando deseas asociar una aplicación específica para la Reproducción automática para el dispositivo de volumen.This is especially useful when you want to associate a specific app for AutoPlay to present to the user for your volume device.

Aquí se muestra cómo identificar el dispositivo de volumen como dispositivo de Reproducción automática.Here we show how to identify your volume device as an AutoPlay device.

Para identificar el dispositivo de volumen como dispositivo de Reproducción automática, agrega un archivo autorun.inf a la unidad raíz del dispositivo.To identify your volume device as an AutoPlay device, add an autorun.inf file to the root drive of your device. En el archivo autorun.inf, agrega una clave CustomEvent a la sección Ejecución automática.In the autorun.inf file, add a CustomEvent key to the AutoRun section. Cuando el dispositivo de volumen se conecte a un equipo, Reproducción automática encontrará el archivo autorun.inf y tratará el volumen como un dispositivo.When your volume device connects to a PC, AutoPlay will find the autorun.inf file and treat your volume as a device. Reproducción automática creará un evento de Reproducción automática con el nombre que proporcionaste para la clave CustomEvent.AutoPlay will create an AutoPlay event by using the name that you supplied for the CustomEvent key. Después podrás crear una aplicación y registrarla como controlador del evento de Reproducción automática.You can then create an app and register the app as a handler for that AutoPlay event. Cuando se conecte el dispositivo al equipo, Reproducción automática mostrará la aplicación como controlador del dispositivo de volumen.When the device is connected to the PC, AutoPlay will show your app as a handler for your volume device. Para obtener más información acerca de los archivos autorun.inf, consulta Entradas de autorun.inf.For more info on autorun.inf files, see autorun.inf entries.

Paso 1: Crear un archivo autorun.infStep 1: Create an autorun.inf file

En la unidad raíz del dispositivo de volumen, agrega un archivo denominado autorun.inf.In the root drive of your volume device, add a file named autorun.inf. Abre el archivo autorun.inf y agrega el siguiente texto.Open the autorun.inf file and add the following text.

[AutoRun]
CustomEvent=AutoPlayCustomEventQuickstart

Paso 2: Crear un nuevo proyecto y agregar declaraciones de Reproducción automáticaStep 2: Create a new project and add AutoPlay declarations

  1. Abre Visual Studio y selecciona Nuevo proyecto en el menú Archivo.Open Visual Studio and select New Project from the File menu. En la sección Visual C# , en Windows, seleccione aplicación vacía (Windows universal).In the Visual C# section, under Windows, select Blank App (Universal Windows). Asigna el nombre AutoPlayCustomEvent a la aplicación y haz clic enAceptar.Name the application AutoPlayCustomEvent and click OK.

  2. Abra el archivo package. appxmanifest y seleccione la pestaña capacidades . Seleccione la capacidad de almacenamiento extraíble .Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage capability. Esto permite que la aplicación tenga acceso a los archivos y carpetas de los dispositivos de almacenamiento extraíble.This gives the app access to the files and folders on removable storage devices.

  3. En el archivo de manifiesto, seleccione la pestaña declaraciones . En la lista desplegable declaraciones disponibles , seleccione contenido de reproducción automática y haga clic en Agregar.In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Content and click Add. Selecciona el elemento Contenido de Reproducción automática que se agregó a la lista Declaraciones admitidas.Select the new AutoPlay Content item that was added to the Supported Declarations list.

    Nota:    También puede optar por agregar una declaración de dispositivo de reproducción automática para el evento personalizado de reproducción automática.Note  Alternatively, you can also choose to add an AutoPlay Device declaration for your custom AutoPlay event.  

  4. En la sección Acciones de inicio de tu declaración de evento de contenido de Reproducción automática, especifica los valores en la siguiente tabla para la primera acción de inicio.In the Launch Actions section for your AutoPlay Content event declaration, enter the values in the table below for the first launch action.

  5. En la lista desplegable Declaraciones disponibles, selecciona Asociaciones de tipo de archivo y haz clic en Agregar.In the Available Declarations drop-down list, select File Type Associations and click Add. En las propiedades de la nueva declaración de asociaciones de tipo de archivo , establezca el campo nombre para Mostrar en Mostrar archivos. ms y el campo nombre en ** _ Asociación de MS**.In the Properties of the new File Type Associations declaration, set the Display Name field to Show .ms Files and the Name field to ms_association. En la sección Tipos de archivo admitidos, haz clic en Agregar nuevo.In the Supported File Types section, click Add New. Establece el campo Tipo de archivo en .ms.Set the File Type field to .ms. Para los eventos de contenido, Reproducción automática filtra todos los tipos de archivo que no están asociados explícitamente a la aplicación.For content events, AutoPlay filters out any file types that aren't explicitly associated with your app.

  6. Guarde y cierre el archivo de manifiesto.Save and close the manifest file.

ConfiguraciónSetting ValueValue
VerboVerb showshow
Nombre para mostrar de la acciónAction Display Name Mostrar archivosShow Files
Evento de contenidoContent Event AutoPlayCustomEventQuickstartAutoPlayCustomEventQuickstart

El valor Evento de contenido es el texto que suministraste para la clave CustomEvent en el archivo autorun.inf.The Content Event value is the text that you supplied for the CustomEvent key in your autorun.inf file. La configuración Nombre para mostrar de la acción identifica la cadena que Reproducción automática muestra para tu aplicación.The Action Display Name setting identifies the string that AutoPlay displays for your app. La configuración Verbo identifica un valor que se pasa a la aplicación para la opción seleccionada.The Verb setting identifies a value that is passed to your app for the selected option. Puede especificar varias acciones de inicio para un evento de reproducción automática y usar el valor de verbo para determinar qué opción ha seleccionado un usuario para la aplicación.You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. Puede indicar qué opción seleccionó el usuario mediante la comprobación de la propiedad Verb de los argumentos de evento de inicio pasados a la aplicación.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Puede usar cualquier valor para el valor Verb , excepto, Open, que está reservado.You can use any value for the Verb setting except, open, which is reserved.

Paso 3: Agregar la interfaz de usuario XAMLStep 3: Add XAML UI

Abre el archivo MainPage.xaml y agrega el siguiente XAML a la sección <Grid> predeterminada.Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<StackPanel Orientation="Vertical">
    <TextBlock FontSize="28" Margin="10,0,800,0">Files</TextBlock>
    <TextBlock x:Name="FilesBlock" FontSize="22" Height="600" Margin="10,0,800,0" />
</StackPanel>

Paso 4: Agregar código de activaciónStep 4: Add activation code

El código de este paso llama a un método para que muestre las carpetas en la unidad raíz del dispositivo de volumen.The code in this step calls a method to display the folders in the root drive of your volume device. Para los eventos de contenido de Reproducción automática, Reproducción automática transmite la carpeta raíz del dispositivo de almacenamiento en los argumentos de inicio que se transmiten a la aplicación durante el evento OnFileActivated.For the AutoPlay content events, AutoPlay passes the root folder of the storage device in the startup arguments passed to the application during the OnFileActivated event. Puedes recuperar esta carpeta del primer elemento de la propiedad Files.You can retrieve this folder from the first element of the Files property.

Abre el archivo App.xaml.cs y agrega el siguiente código a la clase App.Open the App.xaml.cs file and add the following code to the App class.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
    var rootFrame = Window.Current.Content as Frame;
    var page = rootFrame.Content as MainPage;

    // Call ShowFolders with root folder from device storage.
    page.DisplayFiles(args.Files[0] as Windows.Storage.StorageFolder);

    base.OnFileActivated(args);
}

Nota:    El DisplayFiles método se agrega en el paso siguiente.Note  The DisplayFiles method is added in the following step.

 

Paso 5: Agregar código para mostrar carpetasStep 5: Add code to display folders

En el archivo MainPage.xaml.cs, agregue el código siguiente a la clase mainpage .In the MainPage.xaml.cs file add the following code to the MainPage class.

internal async void DisplayFiles(Windows.Storage.StorageFolder folder)
{
    foreach (Windows.Storage.StorageFile f in await ReadFiles(folder, ".ms"))
    {
        FilesBlock.Text += "  " + f.Name + "\n";
    }
}

internal async System.Threading.Tasks.Task<IReadOnlyList<Windows.Storage.StorageFile>>
    ReadFiles(Windows.Storage.StorageFolder folder, string fileExtension)
{
    var options = new Windows.Storage.Search.QueryOptions();
    options.FileTypeFilter.Add(fileExtension);
    var query = folder.CreateFileQueryWithOptions(options);
    var files = await query.GetFilesAsync();

    return files;
}

Paso 6: Compilar y ejecutar la aplicaciónStep 6: Build and run the qpp

  1. Presiona F5 para compilar e implementar la aplicación (en modo de depuración).Press F5 to build and deploy the app (in debug mode).
  2. Para ejecutar la aplicación, inserta una tarjeta de memoria u otro dispositivo de almacenamiento en el equipo.To run your app, insert a memory card or another storage device into your PC. Luego, selecciona la aplicación en la lista de opciones de controlador de Reproducción automática.Then select your app from the list of AutoPlay handler options.

Referencia del evento de reproducción automáticaAutoPlay event reference

El sistema Reproducción automática permite registrar las aplicaciones para diversos eventos de inserción de volumen (disco) y dispositivoThe AutoPlay system allows apps to register for a variety of device and volume (disk) arrival events. Para registrar la aplicación en eventos de contenido de Reproducción automática, debes habilitar la funcionalidad Almacenamiento extraíble en el manifiesto del paquete.To register for AutoPlay content events, you must enable the Removable Storage capability in your package manifest. La tabla muestra los eventos en los que puedes registrar tu aplicación y cuándo se generan.This table shows the events that you can register for and when they are raised.

EscenarioScenario EventoEvent DescripciónDescription
Uso de fotos en una cámaraUsing photos on a Camera WPD\ImageSourceWPD\ImageSource Se genera para cámaras identificadas como dispositivos portátiles de Windows y ofrece la funcionalidad ImageSource.Raised for cameras that are identified as Windows Portable Devices and offer the ImageSource capability.
Uso de música en un reproductor de audioUsing music on an audio player WPD\AudioSourceWPD\AudioSource Se genera para reproductores de medios identificados como dispositivos portátiles de Windows y ofrece la funcionalidad AudioSource.Raised for media players that are identified as Windows Portable Devices and offer the AudioSource capability.
Uso de vídeos en una cámaraUsing videos on a video camera WPD\VideoSourceWPD\VideoSource Se genera para videocámaras identificadas como dispositivos portátiles de Windows y ofrece la funcionalidad VideoSource.Raised for video cameras that are identified as Windows Portable Devices and offer the VideoSource capability.
Acceder a una unidad flash o disco duro externo conectadoAccess a connected flash drive or external hard drive StorageOnArrivalStorageOnArrival Se genera cuando se conecta una unidad o un volumen al equipo.Raised when a drive or volume is connected to the PC. Si la unidad o el volumen contienen una carpeta DCIM, AVCHD o PRIVATE\ACHD en la raíz del disco, en su lugar, se genera el evento ShowPicturesOnArrival.If the drive or volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder in the root of the disk, the ShowPicturesOnArrival event is raised instead.
Uso de fotos de dispositivos de almacenamiento masivo (heredados)Using photos from mass storage (legacy) ShowPicturesOnArrivalShowPicturesOnArrival Se genera cuando la unidad o el volumen contienen una carpeta DCIM, AVCHD o PRIVATE\ACHD en la raíz del disco.Raised when a drive or volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder in the root of the disk. Si un usuario habilitó Elegir qué hacer con cada tipo de medio en el Panel de control de Reproducción Automática, esta funcionalidad examinará un volumen conectado al equipo para determinar el tipo de contenido del disco.IIf a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. Cuando se encuentran imágenes, se genera ShowPicturesOnArrival.When pictures are found, ShowPicturesOnArrival is raised.
Recepción de fotos con uso compartido de proximidad (tocar y enviar)Receiving photos with Proximity Sharing (tap and send) ShowPicturesOnArrivalShowPicturesOnArrival Cuando los usuarios envíen contenido mediante proximidad (tocar y enviar), Reproducción automática examinará los archivos compartidos para determinar el tipo de contenido.When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. Si se encuentran imágenes, se genera ShowPicturesOnArrival.If pictures are found, ShowPicturesOnArrival is raised.
Uso de música de dispositivos de almacenamiento masivo (heredados)Using music from mass storage (legacy) PlayMusicFilesOnArrivalPlayMusicFilesOnArrival Si un usuario habilitó Elegir qué hacer con cada tipo de medio en el Panel de control de Reproducción Automática, esta funcionalidad examinará un volumen conectado al equipo para determinar el tipo de contenido del disco.If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. Cuando se encuentran los archivos de música, se genera PlayMusicFilesOnArrival.When music files are found, PlayMusicFilesOnArrival is raised.
Recepción de música con uso compartido de proximidad (tocar y enviar)Receiving music with Proximity Sharing (tap and send) PlayMusicFilesOnArrivalPlayMusicFilesOnArrival Cuando los usuarios envíen contenido mediante proximidad (tocar y enviar), Reproducción automática examinará los archivos compartidos para determinar el tipo de contenido.When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. Si se encuentran los archivos de música, se genera PlayMusicFilesOnArrival.If music files are found, PlayMusicFilesOnArrival is raised.
Uso de vídeos de dispositivos de almacenamiento (heredados)Using videos from mass storage (legacy) PlayVideoFilesOnArrivalPlayVideoFilesOnArrival Si un usuario habilitó Elegir qué hacer con cada tipo de medio en el Panel de control de Reproducción Automática, esta funcionalidad examinará un volumen conectado al equipo para determinar el tipo de contenido del disco.If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. Cuando se encuentran los archivos de vídeo, se genera PlayVideoFilesOnArrival.When video files are found, PlayVideoFilesOnArrival is raised.
Recepción de vídeos con uso compartido de proximidad (tocar y enviar)Receiving videos with Proximity Sharing (tap and send) PlayVideoFilesOnArrivalPlayVideoFilesOnArrival Cuando los usuarios envíen contenido mediante proximidad (tocar y enviar), Reproducción automática examinará los archivos compartidos para determinar el tipo de contenido.When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. Si se encuentran los archivos de vídeo, se genera PlayVideoFilesOnArrival.If video files are found, PlayVideoFilesOnArrival is raised.
Administración de conjuntos mixtos de archivos de un dispositivo conectadoHandling mixed sets of files from a connected device MixedContentOnArrivalMixedContentOnArrival Si un usuario habilitó Elegir qué hacer con cada tipo de medio en el Panel de control de Reproducción Automática, esta funcionalidad examinará un volumen conectado al equipo para determinar el tipo de contenido del disco.If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. Si no se encuentra ningún tipo de contenido específico (por ejemplo, imágenes), se genera MixedContentOnArrival.If no specific content type is found (for example, pictures), MixedContentOnArrival is raised.
Administración de conjuntos mixtos de archivos con uso compartido de proximidad (tocar y enviar)Handling mixed sets of files with Proximity Sharing (tap and send) MixedContentOnArrivalMixedContentOnArrival Cuando los usuarios envíen contenido mediante proximidad (tocar y enviar), Reproducción automática examinará los archivos compartidos para determinar el tipo de contenido.When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. Si no se encuentra ningún tipo de contenido específico (por ejemplo, imágenes), se genera MixedContentOnArrival.If no specific content type is found (for example, pictures), MixedContentOnArrival is raised.
Administrar vídeos de medios ópticosHandle video from optical media PlayDVDMovieOnArrivalPlayDVDMovieOnArrival
PlayBluRayOnArrivalPlayBluRayOnArrival
PlayVideoCDMovieOnArrivalPlayVideoCDMovieOnArrival
PlaySuperVideoCDMovieOnArrivalPlaySuperVideoCDMovieOnArrival
Cuando se inserta un disco en la unidad óptica, la reproducción automática examinará los archivos para determinar el tipo de contenido.When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. Cuando se encuentran archivos de vídeo, se genera el evento correspondiente al tipo de disco óptico.When video files are found, the event corresponding to the type of optical disk is raised.
Administrar música de medios ópticosHandle music from optical media PlayCDAudioOnArrivalPlayCDAudioOnArrival
PlayDVDAudioOnArrivalPlayDVDAudioOnArrival
Cuando se inserta un disco en la unidad óptica, la reproducción automática examinará los archivos para determinar el tipo de contenido.When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. Cuando se encuentran archivos de música, se genera el evento correspondiente al tipo de disco óptico.When music files are found, the event corresponding to the type of optical disk is raised.
Reproducir discos mejoradosPlay enhanced disks PlayEnhancedCDOnArrivalPlayEnhancedCDOnArrival
PlayEnhancedDVDOnArrivalPlayEnhancedDVDOnArrival
Cuando se inserta un disco en la unidad óptica, la reproducción automática examinará los archivos para determinar el tipo de contenido.When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. Cuando se encuentra un disco mejorado, se genera el evento correspondiente al tipo de disco óptico.When an enhanced disk is found, the event corresponding to the type of optical disk is raised.
Administrar discos ópticos grabablesHandle writeable optical disks HandleCDBurningOnArrivalHandleCDBurningOnArrival
HandleDVDBurningOnArrivalHandleDVDBurningOnArrival
HandleBDBurningOnArrivalHandleBDBurningOnArrival
Cuando se inserta un disco en la unidad óptica, la reproducción automática examinará los archivos para determinar el tipo de contenido.When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. Cuando se encuentra un disco grabable, se genera el evento correspondiente al tipo de disco óptico.When a writable disk is found, the event corresponding to the type of optical disk is raised.
Administrar cualquier otra conexión de volúmenes o dispositivosHandle any other device or volume connection UnknownContentOnArrivalUnknownContentOnArrival Se genera para todos los eventos si se encuentra contenido que no coincida con ninguno de los eventos de contenido de Reproducción automática.Raised for all events in case content is found that does not match any of the AutoPlay content events. No se recomienda el uso de este evento.Use of this event is not recommended. Solo debes registrar tu aplicación para los eventos de Reproducción automática específicos que esta pueda administrar.You should only register your application for the specific AutoPlay events that it can handle.

Puedes especificar que Reproducción automática genere un evento de contenido personalizado con la entrada CustomEvent en el archivo autorun.inf para un volumen.You can specify that AutoPlay raise a custom AutoPlay Content event using the CustomEvent entry in the autorun.inf file for a volume. Para obtener más información, consulta Entradas en autorun.inf.For more info, see Autorun.inf entries.

Puedes agregar una extensión al archivo package.appxmanifest de tu aplicación para registrarla como controlador de eventos de Contenido de Reproducción automática o Dispositivo de Reproducción automática.You can register your app as an AutoPlay Content or AutoPlay Device event handler by adding an extension to the package.appxmanifest file for your app. Si usa Visual Studio, puede Agregar un contenido de reproducción automática o una declaración de dispositivo de reproducción automática en la pestaña declaraciones . Si va a editar el archivo package. appxmanifest para su aplicación directamente, agregue un elemento de extensión al manifiesto del paquete que especifique Windows. autoPlayContent o Windows. autoPlayDevice como categoría.If you are using Visual Studio, you can add an AutoPlay Content or AutoPlay Device declaration in the Declarations tab. If you are editing the package.appxmanifest file for your app directly, add an Extension element to your package manifest that specifies either windows.autoPlayContent or windows.autoPlayDevice as the Category. Por ejemplo, la siguiente entrada del manifiesto del paquete agrega una extensión de Contenido de Reproducción automática para registrar la aplicación como controlador del evento ShowPicturesOnArrival.For example, the following entry in the package manifest adds an AutoPlay Content extension to register the app as a handler for the ShowPicturesOnArrival event.

  <Applications>
    <Application Id="AutoPlayHandlerSample.App">
      <Extensions>
        <Extension Category="windows.autoPlayContent">
          <AutoPlayContent>
            <LaunchAction Verb="show" ActionDisplayName="Show Pictures"
                          ContentEvent="ShowPicturesOnArrival" />
          </AutoPlayContent>
        </Extension>
      </Extensions>
    </Application>
  </Applications>