Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Reproducir sonido (https://www.clubdelphi.com/foros/showthread.php?t=53093)

lfb 10-02-2008 14:05:04

Reproducir sonido
 
Hola colegas
Necesito saber como reproducir un sonido pero no con el TMediaPlayer e investigado y se utiliza la biblioteca <mmsystem> pero no se como utilizarla. Espero que no les cause molestias

Que tengan un buen dia

cHackAll 11-02-2008 22:21:34

Código:

...
 
#include <mmsystem.h>
 
...
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 PlaySound("c:\windows\media\chord.wav", 0, SND_FILENAME);
}


lfb 12-02-2008 15:41:02

Otro
 
Gracias cHackAll
Pero lo que necesito es que pueda reproducir archivos .mp3

cHackAll 12-02-2008 16:54:22

Cita:

Empezado por lfb (Mensaje 265207)
Gracias cHackAll
Pero lo que necesito es que pueda reproducir archivos .mp3

Vaya... disculpa el no haber entendido tal cosa en tu primer post :rolleyes:

Código:

mciExecute("play .\sonata_ClubDelphi.mp3");

lfb 12-02-2008 21:17:08

cHackAll
Esa funcion que me diste no me aparece, verificar lo que me dijiste por el C++ Builder no la reconoce.
Disculpa la molestia, y muchas gracias por la ayuda :)

Saludos

cHackAll 13-02-2008 04:20:06

Cita:

Empezado por lfb (Mensaje 265360)
cHackAll
Esa funcion que me diste no me aparece, verificar lo que me dijiste por el C++ Builder no la reconoce.
Disculpa la molestia, y muchas gracias por la ayuda :)

Saludos

En realidad no es un problema de que la "reconozca" o no;
Cita:

Empezado por mmsystem.h
#if (WINVER < 0x030a)
WINMMAPI BOOL WINAPI mciExecute(LPCSTR pszCommand);
#endif /* ifdef WINVER < 0x030a */

Donde:
Cita:

Empezado por ras.h
WINVER values in this file:
WINVER < 0x400 = Windows NT 3.5, Windows NT 3.51
WINVER = 0x400 = Windows 95, Windows98, Windows NT4 (default)
WINVER > 0x400 = Windows NT4 enhancements
WINVER = 0x500 = Windows 2000

Lo que prácticamente nos obliga a usar las APIs "nuevas" como mciSendCommandA o tantas otras.

En fin; independientemente de la causa de que no te funcione mi anterior code; siempre podemos cargar la libreria por cuenta propia y ejecutar una función deseada ignorando los "caprichos" del BCB:
Código:

typedef BOOL (*TProc)(char *lpstrCommand);
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 HMODULE hLib = LoadLibrary("winmm.dll");
 if (hLib)
  {
  TProc mciExecute = (TProc)GetProcAddress(hLib,"mciExecute");
  mciExecute("play c:\\sonata_ClubDelphi.mp3");
  FreeLibrary(hLib);
  }
}

PD: todavia no puedo llegar a optimizar el code en C... pero ya estaremos viendo :cool:

Saludos


La franja horaria es GMT +2. Ahora son las 18:59:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi