Perl lire un fichier son

Résolu/Fermé
mail_pops - 18 nov. 2004 à 16:17
mail_pops Messages postés 6 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 4 février 2005 - 4 févr. 2005 à 15:59
Bonjour,

Je cherche en vain à lire un fichier son dans une application perl Tk.
La seule réponse du système est de m'aggresse d'un biiippp de mécontentement.

Voici mon code actuel :
	if (open(AUDIO, "<$mon_fichier")) {  
 		my $amt;
		my $data;
		while(($amt = sysread(AUDIO, $data, 4096)) > 0) {
			syswrite(STDOUT, $data, $amt);  
		}        
		close(AUDIO);
	} else {  
		die("Cannot open $mon_fichier\n");  
	}  


Quelqu'un a-t-il la réponse à ma question ?
D'avance, merci.

PS : Mon fichier est un .vox (un .wave ne passe pas non plus).
A voir également:

3 réponses

Utilisateur anonyme
18 nov. 2004 à 21:24
Bonjour,

peut-être quand ouvrant correctement le fichier son en lecture :
open(AUDIO, ">$mon_fichier")

au lieu de open(AUDIO, "<$mon_fichier")

a+
0
mail_pops Messages postés 6 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 4 février 2005
19 nov. 2004 à 10:45
Bonjour,

Il me semble que si je mets
open(AUDIO, ">$mon_fichier") 
j'ouvre mon fichier en écriture. Par contre tu as raison, il est plus correct de mettre
open(AUDIO, "$mon_fichier") 
sans aucun signe.
Mais cela ne change rien.
Il semblerait que mon fichier s'ouvre bien, mais que le problème se situe au niveau de l'écriture avec syswrite (faut-il vraiment l'envoyer sur la sortie standard ? Tout est envoyé sur la console...).

Merci.
0
mail_pops Messages postés 6 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 4 février 2005
4 févr. 2005 à 15:59
Je retombe pas hasard sur cet ancien post et en profite pour vous donner la réponse, trouvée depuis :

use Win32::Sound;

sub read_audio {  
	Win32::Sound::Play("sons/$mon_fichier.wav");
}


Voilà, comme quoi, tout est prévu...
0