Saltar al contenido

Cómo reproducir un recurso de archivo de sonido WPF

Solución:

Probé esto con un archivo de imagen, que funciona igual que un archivo de sonido en lo que respecta al uri porque es solo otro recurso. Usé el código a continuación que esencialmente coincide con lo que tienes.

new Uri(@"pack://application:,,,/Resources/logo.png")

Asegúrese de que su carpeta ‘Medios’ no esté anidada en ninguna otra carpeta. Si es así, también debe incluir esa carpeta.

Utilizando .NET Framework 4.0, VS2012.

Este enlace ofrece una descripción bastante buena de todo el esquema de cosas del “paquete”.

EDITAR

Más investigaciones sobre este tema parecen indicar que lo que desea hacer podría no ser posible con archivos de audio o video. El extracto a continuación se tomó de la sección de comentarios de esta página de MSDN.

Aunque puede declarar una instancia de esta clase en Lenguaje de marcado de aplicaciones extensible (XAML), no puede cargar y reproducir su contenido multimedia sin usar código. Para reproducir contenido multimedia solo en XAML, use un elemento MediaElement. Además, si declara una instancia en XAML, el único uso práctico es completar la sintaxis del elemento de propiedad para la propiedad Player.

Al distribuir medios con su aplicación, no puede utilizar un archivo multimedia como recurso del proyecto. En su archivo de proyecto, debe establecer el tipo de medio en Contenido y establecer CopyToOutputDirectory en PreserveNewest o Always.

MediaPlayer se puede utilizar en dos modos diferentes, dependiendo de lo que esté impulsando el reproductor: modo independiente o modo reloj. En modo independiente, MediaPlayer es análogo a una imagen y los medios abiertos a través del método Open controlan la reproducción. En el modo Reloj, el MediaPlayer se puede considerar como un objetivo para una animación y, por lo tanto, tendrá las entradas correspondientes de la Línea de tiempo y el Reloj en el árbol de tiempo que controla la reproducción. Para obtener más información sobre los modos multimedia, consulte Descripción general de multimedia.

MediaPlayer es diferente de MediaElement en que no es un control que se pueda agregar directamente a la interfaz de usuario (UI) de una aplicación. Para mostrar los medios cargados con MediaPlayer, se debe usar un VideoDrawing o DrawingContext.

Lo siguiente parece funcionar en .NET Framework 4.5:

var sri = Application.GetResourceStream(new Uri("pack://application:,,,/MyAssemblyName;component/Resources/CameraShutter.wav"));

if ((sri != null)) 
{
  using (s == sri.Stream) 
  {
    System.Media.SoundPlayer player = new System.Media.SoundPlayer(s);
    player.Load();
    player.Play();
  }
}

CameraShutter.wav está incrustado como Recurso en mi proyecto (y reside dentro de la subcarpeta Resources, como se indica en el URI del paquete).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *