Le code source de la fonction playaudio
est très simple:
if (any (strcmp (ext, {"lin", "raw"})))
[status, out] = system (sprintf ('cat "%s" > /dev/dsp', name));
if (status != 0)
system (sprintf ('paplay --raw "%s"', name));
endif
elseif (any (strcmp (ext, {"mu", "au" "snd", "ul"})))
[status, out] = system (sprintf ('cat "%s" > /dev/audio', name));
if (status != 0)
system (sprintf ('paplay "%s"', name));
endif
else
error ("playaudio: unsupported extension '%s'", ext);
endif
Comme vous pouvez le voir, il est tout simplement faire un appel système avec l'utilitaire paplay
disponible dans tous les systèmes Linux en utilisant le serveur de son PulseAudio. Si vous avez la permission d'éditer le fichier vous-même playaudio.m
, il suffit d'ajouter le « wav » extension à la liste comme dans:
elseif (any (strcmp (ext, {"mu", "au" "snd", "ul", "wav"})))
Il devrait fonctionner hors de la boîte. Je vais soumettre ce correctif au système de suivi des bogues GNU Octave. Merci d'avoir signalé le problème.
Patch soumis: https://savannah.gnu.org/patch/index.php?8441
Peut-être que vous trouvez [cette question/réponse] (http://stackoverflow.com/questions/5130942/reading-and-playing-sound-in-octave-on- fedora12) pour être utile. Il semble que vous deviez utiliser ['wavread'] (http://www.gnu.org/software/octave/doc/interpreter/Audio-Processing.html#XREFwavread) en premier. – Schorsch