Autor
|
Tema: Hacer grabación con micrófono en cpp (Leído 6,734 veces)
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Hola a todos, estoy intentando hacer una funcion en cpp que grabe archivos de audio en formato ".bmp" o ".mp3" y a ser posible controlar el tiempo de recogida de datos.
Ahora no puedo subir codigos y no puedo aportar mas información.
Me podeis pasar el codigo, decirme como hacerlo o encontarlo lo agradeceria.
Aportare mas datos y codigo mas tarde, gracias.
Saludos.
|
|
« Última modificación: 7 Octubre 2014, 16:51 pm por Eternal Idol »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
engel lex
|
Ahora no puedo subir codigos y no puedo aportar mas información.
Me podeis pasar el codigo, decirme como hacerlo o encontarlo lo agradeceria. por que no puedes subir códigos? quien lo prohíbe? no se dan codigos hechos, eso si va contra las reglas del foro... quieres guardar .mp3 y .bmp pero desde donde? cual es la fuente? si la fuente es la misma que el resultado con un abrir y escribir archivo en modo binario bastaría
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Hola no podía subir código porque no estaba con el ordenador, sí con el móvil. De todas formas si hago un POST con la intención de aprender a grabar voz con cpp es porque no se como hacerlo y creédme que ya he googleado bastante. Creo haber conseguido hacer captura con webcam y grabar vídeo, ahora busco grabar audio, y no encuentro ningún código ni nada por internet de momento, por lo que ví preciso hacer el tema.
Destacar que no quiero usar programas externos, ahora mi internet es prácticamente nulo por lo que no puedo hacer más de escribir este mensaje, he visitado la página y parece interesante mañana me pondré a ello, de todas formas leí algo de waveln() que grababa audio pero no encontré nada de ella ni ejemplos librerías nada.
También he pensado en hacer un vídeo y pasarlo a ".mp3" cosa que de primeras no sabría hacer, y demás de todas formas mañana me miro el link que me pasaste con detalle, aunque de primeras veo mucho código y no lo guarda en archivo, no sé gracias y mañana os comento.
Saludos.
|
|
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
MCKSys Argentina
|
Tuve que leer el thread completo porque no tenía idea de lo que un micrósono (o microsofo) era... @Kaxperday: Sigue los consejos de ivancea96 y busca en google. Hay muchos ejemplos en la web acerca de lo que quieres hacer. Con respecto a MP3, la lib lame es la más usada y es GPL. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Vaya me he ojeado el código de ivancea y no sé en que momento comienza a grabar el audio pero lo menos hay 10 archivos ".c" es dificil y más sin saber de interfaz gráfica de ventanas. Por lo de lame acabo de visitar la página he intentado descargarlo y todos los archivos son ".tar.gz" yo lo quiero para windows, y no encontré ningún ".zip" ni ".rar" ni código fuente. http://sourceforge.net/projects/lame/files/lame/3.99/Saludos.
|
|
« Última modificación: 7 Octubre 2014, 10:10 am por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
WinRar descomprime los .tar.gz, si es lo que preguntas.
|
|
|
En línea
|
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Vaya gracias ahora me entero y el zip también vale, ahora bien tengo unas 15 carpetas y muchos archivos que no se para que valen para muchos sistemas operativos, y varios proyectos en cpp, ¿se supone que tengo que escarbar de ahí una función que me grabe el archivo de audio, es que estoy hecho un lío, ¿sabéis que directorio es el de windows donde está el proyecto que graba el audio? Así al menos me estudio ese y no 15 más como él xD, descarto la carpeta que se llama debian y mac. Y una vez encuentre el codigo con su proyecto y su main, bueno ahí ya me las trataré de apañar. Edito: quieres guardar .mp3 y .bmp pero desde donde? cual es la fuente? si la fuente es la misma que el resultado con un abrir y escribir archivo en modo binario bastaría Claro esa es la pregunta ¿como extraigo los datos binarios que recibe el micrófono? Luego ya sería guardarlos en un archivo ".mp3" o ".bmp" o lo que sea supongo, pero como hago la función de extraer esos bytes del micrófono es la pregunta. La verdad esto de lame no se nada, estaré estudiando el link de ivancea y buscaré donde extrae datos aunque si me podías decir que ".c" es el que lo hace mejor :=() Gracias
|
|
« Última modificación: 7 Octubre 2014, 14:17 pm por Kaxperday »
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
BMP es un imagen WAV es un audio. La solucion de ivancea96 era buena, si te resulta dificil trata de usar mciSendCommand con MCI_RECORD que es mas sencilla pero no mejor. Ejemplo: Recording with a Waveform-Audio Device.
|
|
« Última modificación: 7 Octubre 2014, 16:51 pm por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Kaxperday
Desconectado
Mensajes: 702
The man in the Middle
|
Hola de nuevo siento la demora, gracias por las respuestas sobretodo a eternal idol que me ha pasado justo lo que buscaba, un código simple que haga un archivo de voz, no quiero más xD. Bueno me he puesto a probarlo y no me compila os paso todo el codigo: main.cpp: #include <Windows.h> using namespace std; DWORD recordWAVEFile(DWORD dwMilliSeconds) { UINT wDeviceID; DWORD dwReturn; MCI_OPEN_PARMS mciOpenParms; MCI_RECORD_PARMS mciRecordParms; MCI_SAVE_PARMS mciSaveParms; MCI_PLAY_PARMS mciPlayParms; // Open a waveform-audio device with a new file for recording. mciOpenParms.lpstrDeviceType = (LPCSTR)"waveaudio"; mciOpenParms.lpstrElementName = (LPCSTR)""; if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID)&mciOpenParms)) { // Failed to open device; don't close it, just return error. return (dwReturn); } // The device opened successfully; get the device ID. wDeviceID = mciOpenParms.wDeviceID; // Begin recording and record for the specified number of // milliseconds. Wait for recording to complete before continuing. // Assume the default time format for the waveform-audio device // (milliseconds). mciRecordParms.dwTo = dwMilliSeconds; if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD, MCI_TO | MCI_WAIT, (DWORD)(LPVOID)&mciRecordParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); } // Play the recording and query user to save the file. mciPlayParms.dwFrom = 0L; if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_FROM | MCI_WAIT, (DWORD)(LPVOID)&mciPlayParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); } /*HWND hMainWnd; if (MessageBox(hMainWnd, "Do you want to save this recording?", (LPCSTR)"", MB_YESNO) == IDNO) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (0L); }*/ // Save the recording to a file named TEMPFILE.WAV. Wait for // the operation to complete before continuing. mciSaveParms.lpfilename = "tempfile.wav"; if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE, MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID)&mciSaveParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); } return (0L); } int main() { recordWAVEFile(10000); return 0; }
Errores: "Error 1 error LNK2019: símbolo externo __imp__mciSendCommandA@16 sin resolver al que se hace referencia en la función "unsigned long __cdecl recordWAVEFile(unsigned long)" (?recordWAVEFile@@YAKK@Z)" "Error 2 error LNK1120: 1 externos sin resolver" Destacar que he modificado el codigo SOLO he puesto como comentario donde creo la ventana HWND y el siguiente if, ya que no me interesa preguntar ni hacer ventanas, y el codigo fuente que encontré aquí: (encontro eternal idol <3)* http://msdn.microsoft.com/en-us/library/windows/desktop/dd798631%28v=vs.85%29.aspxNo estaba declarada la ventana, probe ha hacer lo poco que se de ventanas y seguía sin funcionar así que lo puse como comentario pero da esos errores, haber si sabéis algo Muchas gracias y un saludo.
|
|
|
En línea
|
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
para hacer overburn, el método de grabación ha de ser disc-at-once verdad?
Software
|
nichihack
|
5
|
8,760
|
30 Abril 2005, 11:03 am
por nichihack
|
|
|
Error grabacion de CDs/DVDs - "El proceso de grabación ha fallado a 48x"
« 1 2 »
Software
|
<--v1c1ous-->
|
13
|
79,977
|
2 Abril 2007, 21:55 pm
por Mordor
|
|
|
Como hacer streaming con microfono via winsock?
Programación Visual Basic
|
Fr4NN^
|
7
|
4,315
|
28 Agosto 2008, 03:43 am
por Fr4NN^
|
|
|
[Problema] Grabacion microfono
Multimedia
|
You-and-
|
3
|
3,519
|
28 Marzo 2017, 21:40 pm
por bettu
|
|
|
PYTHON- Grabación de micrófono, con cortes cuando detecta silencio.
Scripting
|
Juancfernandez
|
0
|
2,347
|
14 Enero 2020, 04:09 am
por Juancfernandez
|
|