Cita de: Meta en 25 Febrero 2019, 23:21 PMNo encuentro en referencia el Media.
Me resulta inverosimil que a estas alturas despues de años programando en C# necesites ayuda para resolver este tipo de duda tan básica...
- MediaPlayer Class (System.Windows.Media) | Microsoft Docs (https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.mediaplayer?view=netframework-4.7.2)
(https://i.imgur.com/u6KYdHD.png)
También deberías añadir una referencia al ensamblado
WindowsBase.dll y
System.Windows.dll para así poder acceder al instrumental básico de la librería de clases de WPF.
Cita de: Meta en 25 Febrero 2019, 23:21 PM
// Pongo pocos bytes para no agrandar el tema en el foro.
byte[] rawData = {
0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x08
};
¿Esos bytes se supone que son los bytes
raw de un archivo de sonido, o que cosa sinó?. En cualqueir caso, la clase
System.Windows.Media.MediaPlayer no te va a servir para eso, ya que no acepta un array de bytes o stream, así que primero debes volcar los bytes a un archivo local, y entonces especificar la ruta de dicho archivo en la propiedad
MediaPlayer.Source.
Ahora no me vayas a decir que no sabes como crear un archivo con esos bytes, deberías saberlo ya, pero bueno, por si acaso:
File.WriteAllBytes(String, Byte[]) - Microsoft Docs (https://docs.microsoft.com/en-us/dotnet/api/system.io.file.writeallbytes?view=netframework-4.7.2) o también:
FileStream Class (System.IO) | Microsoft Docs (https://docs.microsoft.com/en-us/dotnet/api/system.io.filestream?view=netframework-4.7.2).
Como alternativa puedes usar la clase
System.Media.SoundPlayer, la cual provee una propiedad
SoundPlayer.Stream que te permitirá asignar un objeto de tipo
MemoryStream (donde puedes escribir ese array de bytes que tienes), es decir sin necesidad de volcar esos bytes a un archivo local, pero esta clase está limitada a reproducir archivos de sonido WAV (no MP3 ni ningún otro formato).
EDITO: Acabo de recordar que con la API nativa de MCI (Media Control Interface) también puedes repoducir archivos de audio MP3 (y WAV y MIDI)...
- MCI - Windows applications | Microsoft Docs (https://docs.microsoft.com/en-us/windows/desktop/multimedia/mci)
pero esto requiere escribir muchos P/Invokes para luego escribir un wrapper, y creo que dicha API no soporta la reproducción desde un bloque de memoria...
- open command - MCI | Microsoft Docs (https://docs.microsoft.com/en-us/windows/desktop/Multimedia/open)
Ahí tienes
dos tres opciones. Saludos.