Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-10-2008, 11:17   #1
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
[C++]Riprodurre un file audio

Salve a tutti,
è da tanto che non sono alle prese con c++ per cui chiedo aiuto per una cosa che non ho mai fatto.
Devo riprodurre un file audio (qualsiasi formato va bene) al verificarsi di un certo evento.
Lavoro su un sistema unix (Linux Ubuntu Hardy) ed avevo letto qualcosa che faceva intendere si postesse fare con l'ausilio della sola <stdio.h>.
Potete darmi qualche suggerimento?
Grazie
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 11:48   #2
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
Credo che sia possibile suonare un file audio su linux solo con stdio !!!

ma probabilmente devi aver installato dei driver che gestiscono la cosa.

ed a quel punto basta aprire il file giusto sotto /dev

vedi questo esempio credo che ti può essere di aiuto:
http://users.powernet.co.uk/kienzle/...io/aurecord.cc
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 11:50   #3
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
anche questa guida credo ti sia utile:
http://www.oreilly.de/catalog/multil...pt/ch14-05.htm
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 30-10-2008, 14:15   #4
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Grazie tglman ci dò subito un'occhiata!!
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2008, 12:08   #5
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Grazie alla guida sopra linkata forse ho capito che direzione prendere tuttavia non sto riuscedo a riprodurre il contenuto di un file audio.
L'esempio proposto per programmare /dev/dsp permette di registrare un audio di 3 secondi e di riprodurlo.
Ho visto che per registrare utilizza la funzione read allora ho pensato:

Codice:
audio = open("/home/jacktric/Scrivania/Provadir/prova_audio.wav", O_RDONLY);
status = read(audio, buf, sizeof(buf)); /* mette il contenuto del file audio in buf */
status = write(fd, buf, sizeof(buf)); /* play it back */
per portare il contenuto del file "prova_audio.wav" nel buffer "buf".
In realtà però quando riproduco scrivendo nel file dsp mi viene fuori un suono pazzesco che nulla centra con quello della traccia!!
Vi prego come posso fare ci sto perdendo i giorni!!
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2008, 13:37   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da christiantric Guarda i messaggi
per portare il contenuto del file "prova_audio.wav" nel buffer "buf".
In realtà però quando riproduco scrivendo nel file dsp mi viene fuori un suono pazzesco che nulla centra con quello della traccia!!
Vi prego come posso fare ci sto perdendo i giorni!!
Per forza il file wav contiene anche degli header, mentre la scheda audio si aspetta solo campioni PCM.
Devi prima usare una libreria per leggere gli wav (o scrivertela da te) e poi passare i campioni ottenuti alla scheda audio.
Io ti consiglio la libreria libsndfile
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2008, 15:23   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Oppure usi aplay richiamandolo con fork - exec. Certo funziona solo se è presente ALSA nel sistema.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2008, 16:08   #8
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Signori per me state parlando arabo (sopratutto cionci) comunque vi ringrazio per il vostro intervento e mi metto subito a studiare le possibilità da voi esposte!!

Certo che se mi fareste un piccolo banale esempio se ce lo avete a portata...
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 31-10-2008, 16:12   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
man aplay
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2008, 17:06   #10
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Ragazzi, ma è possibile che sia così difficile riprodurre un file audio?
Ci sto provando da giorni ormai...vi posto un pò di codice a cui sono giunto ditemi per favore cosa non va (ho usato la libreria libsndfile)

Codice:
#include <stdio.h>
#include <linux/soundcard.h>
#include <sndfile.h> 

int main()
{
  int fd;	/* sound device file descriptor */
  int arg;	/* argument for ioctl calls */
  int status;   /* return status of system calls */
  int audio;	/* audio da riprodurre file descriptor */

  SF_INFO sfinfo;
  sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_32;
  sfinfo.samplerate = 22050;
  sfinfo.channels = 1;
  sfinfo.frames     = 123456789 ;
  char	*filename ;
  filename = "/home/jacktric/Scrivania/Provadir/prova_audio.wav";

 /* apro il file audio da riprodurre in lettura */
  SNDFILE* sf_audio;
  sf_audio = sf_open(filename, SFM_READ, &sfinfo);
  if (sf_audio == NULL) {
    perror("open of file audio failed");
    exit(1);
  }

/* open sound device */
  SNDFILE* sf_fd;
  sf_fd = sf_open("/dev/dsp", SFM_WRITE, &sfinfo); 
  if (sf_fd == NULL) {
    perror("open of /dev/dsp failed");
    exit(1);
  }

sf_command (sf_fd, SFC_SET_UPDATE_HEADER_AUTO, NULL, SF_TRUE) ;

  /* Operazioni di lettura audio ed esecuzione */
  int intptr[659924];
  int status_read;
  status_read = sf_read_int(sf_audio, intptr, 659924); 
  printf("status_read: %d\n", status_read);
  int status_write;
  status_write = sf_write_int(sf_fd, intptr, 659924);
  printf("status_write: %d\n", status_write);
  

  int close;
  close = sf_close(sf_audio);
  close = sf_close(sf_fd);
}
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2008, 19:40   #11
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
[OT]
Ci sara' anche un motivo per cui i giochi sotto Linux non sono molto diffusi.

Sotto Windows, in C#
Codice:
SoundPlayer sp = new SoundPlayer(@"C:\WINDOWS\Media\tada.wav");
sp.Play();
[/OT]
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2008, 19:46   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Ci sara' anche un motivo per cui i giochi sotto Linux non sono molto diffusi.
Le system call in unix/linux solitamente non implementano funzioni di alto livello, basta in ogni caso usare una libreria, OpenAL, SDL etc etc.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2008, 23:34   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
[OT]
Ci sara' anche un motivo per cui i giochi sotto Linux non sono molto diffusi.
e mica solo quello: DirectX dove lo metti?


Quote:
Sotto Windows, in C#
Codice:
SoundPlayer sp = new SoundPlayer(@"C:\WINDOWS\Media\tada.wav");
sp.Play();
niubboh, posso fare di meglio:
Codice:
new SoundPlayer(@"C:\WINDOWS\Media\tada.wav").Play();
una sola riga


Quote:
Originariamente inviato da cionci Guarda i messaggi
Le system call in unix/linux solitamente non implementano funzioni di alto livello
in Windows invece si:
http://msdn.microsoft.com/en-us/library/ms712879.aspx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 00:03   #14
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Ci sta sempre OpenAL + ogg Vorbis... ma poi appunto puoi usare solo gli .ogg.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 08:02   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da 71104 Guarda i messaggi
Lo so, questo perché il sound server su Linux/Unix non è parte integrante del kernel.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 08:42   #16
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
[OT]
Ci sara' anche un motivo per cui i giochi sotto Linux non sono molto diffusi.

Sotto Windows, in C#
Codice:
SoundPlayer sp = new SoundPlayer(@"C:\WINDOWS\Media\tada.wav");
sp.Play();
[/OT]
OT per OT scriveresti un software per riprodurre musica usando un wrapper del PlaySound?
Io credo proprio di no.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 08:50   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ad esempio su linux se dovessi fare un player utilizzerei libsox. Apro un file (il bello è che supporta molti formati), estraggo i campioni PCM e poi lo butto su /dev/dsp.
Praticamente si riesce a fare un player audio multiformato in 20 linee di codice.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 09:15   #18
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Mmmm... ...da questa vostra piccola discussione dovrei ricavare la soluzione del mio problema??
Nessuno che abbia usato ste libsndfile per riprodurre un file audio?
Mi state per caso suggerendo qualche via alternativa?

Le proposte windowsniane sono molto allettanti ma io mi trovo sotto Linux e qui DEVO rimanere...
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 09:28   #19
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da christiantric Guarda i messaggi
Mmmm... ...da questa vostra piccola discussione dovrei ricavare la soluzione del mio problema??
Il "non va" è troppo generico. Cosa esattamente non ti funziona?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2008, 09:52   #20
christiantric
Member
 
L'Avatar di christiantric
 
Iscritto dal: Apr 2007
Città: Lecce
Messaggi: 227
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Il "non va" è troppo generico. Cosa esattamente non ti funziona?
Praticamente il problema è sempre lo stesso, riesco a passare i dati a dev/dsp con quel codice ma viene riprodotto sempre un suono stridulo, un rumore praticamente.
Ho letto tutta la documentazione di libsndfile ma non trovo nulla (apparentemente) riguardante l'estrazione della sola codifica pcm dell'audio o l'isolamento dell'header ecc ecc come mi avevi tu stesso suggerito.
Allora pensando che lo facesse in automatico ho scritto quel codice che ho postato...ma nada de nada!!
__________________
MY PC CONFIGURATION:
SCHEDA MADRE: ASROCK 4CORE-DUAL VSTA PROCESSORE: CONROE E6600 CORE DUO RAM: 1Gb Geil PC 3200 400MHz (2.5,4,4,8)
ALI: ALLIED da 450WSCHEDA VIDEO: HD4850 Sapphire Design 512MB HARD DISK: Saegate 500Gb 7200Rpm MAST DVD LG LETTORE DVD LG
christiantric è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il nucleo della cometa interstellare 3I/...
La Russia potrebbe sviluppare un'arma pe...
Manda la RAM Corsair in assistenza, rice...
ASUS ROG G1000 con 'AniMe Holo': saranno...
Un test di longevità ha messo alla prova...
Incat inizia i test dell'incredibile tra...
LG Sound Suite: al CES il sistema audio ...
Avengers Doomsday, il primo trailer &egr...
La crisi delle memorie non farà sconti a...
Il trailer più atteso dell'anno &...
I gamer vogliono i monitor OLED: sopratt...
Samsung alza l’asticella dei televisori ...
Energie rinnovabili 2025: quasi 42% del ...
Le auto elettriche volano in tutta Europ...
Nuovo look per la finestra Esegui su Win...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v