Lecture audio gstreamer

Salut les gens,

J’utilise un lecteur média fait maison, conçu en PyGTK en utilisant gstreamer. L’exemple 2.1 présent sur cette page fournit la base du truc et est suffisant pour reproduire mon soucis.

J’ai changé de disque dur il y a peu ; tout marchait très bien sur l’ancien système, mais depuis ma réinstallation complète (Edit, j’ai oublié de préciser : j’utilise Sid avec le noyau Linux, en version x86_64), j’obtiens le retour suivant :

Cannot connect to server socket err = Aucun fichier ou dossier de ce type Cannot connect to server request channel jack server is not running or cannot be started
parfois accompagné d’autres messages d’erreurs plus ou moins barbares du même ordre, parlant de descripteur de fichier en mauvais état et/ou d’erreur générale de ressource, et systématiquement sans que le morceau ne soit joué.
Ça concerne tous les morceaux de mon disque que j’ai pu tester ; tandis qu’avec play en ligne de commande, avec MPD ou avec VLC, je n’ai aucun soucis. Voyant la troisième ligne d’erreur, j’ai tenté d’installer jackd et/ou alsaplayer-jack, ce qui n’a rien changé au problème.

Après quelques recherches sur les lignes sus-citées, je suis tombé notamment sur cette page qui date un peu, mais parle d’une mauvaise version de la libva1. Le paquet est correctement installé chez moi (ayant effectué une installation très minimale, j’avais initialement soupçonné une dépendance manquante), et je suppose que le bug a été corrigé depuis, mais il semble être réapparu pour une autre raison.

Quelqu’un aurait-il une suggestion ? Merci d’avance :slightly_smiling:

Je me permet de upper le sujet…

après quelques MàJ et davantage de tests, ça a un peu évolué, mais il semble encore y avoir deux niveaux de soucis.

D’abord, il y a apparemment besoin d’un certain temps (apparemment assez variable) entre le moment où la carte son finit de servir et le moment où elle peut être réutilisée. Le message concernant le descripteur de fichier en mauvais était que je citais au dessus ressemble à ça :

Et il semble en fait survenir chaque fois que je relance le truc moins d’une grosse dizaine de secondes après que la tentative précédente se soit arrêtée.
Je suppose qu’activer le multiplexage arrangerait un peu les choses, mais je n’y connais rien en conf’ ALSA, donc si quelqu’un avait un tuto, ça m’aiderait.

Ensuite, il semble qu’il ait du mal à gérer mes enceintes USB. Si je vire complètement le fichier .asoundrc indiquant de les utiliser plutôt que les enceintes du portables, j’ai moins de soucis (la sélection de la sortie son est la seule chose que contient madite conf’ ALSA). Mais bon, vu la puissance et la qualité sonore des enceintes internes, écouter de la musique a moins d’intérêt sans.
Le plus bizarre est que si j’attends bien longtemps avant de tenter, elles arrivent finalement à jouer quelque chose, mais le son est très moche et assez déformé, ce qui est sans doute en lien avec cette nouvelle ligne d’erreur, que je ne me souviens pas avoir eu au moment du précédent post :

Quel que soit le morceau, et alors que sans les enceintes USB, ça ne se produit pas. Les trois lignes citées dans le premier post restent par contre systématiquement présentes. Et le soucis est très probablement logiciel étant donné que, comme je l’ai déjà dit, avec mpd, play ou vlc, tout marche très bien.

Si ça peut aider, lsusb me dit ça à propos des enceintes :

Si quelqu’un avait le moindre début de piste, je lui en serais grandement reconnaissant.

Pas bien lu ton topic, mais,

Pour certaines applications, on peut choisir entre hw:0 et hw:0,0
Si je ne me gourre, le 1er monopolise la carte son, tandis que le second utilise dmix (qui est déjà configuré).

Par curiosité c’est quel module noyau qui gère tes enceintes USB ? snd-usb-audio ?

Peut-être, pour l’identifiant de la carte, mais je ne sais pas trop comment régler ça.

Pour le module dans le noyau, pas la moindre idée, on vérifie comment ?

Un [mono]dmesg[/mono] juste après les avoir branchées, ou un [mono]lsmod[/mono], ou un [mono]cat /proc/asound/modules[/mono]

Ça semble être snd-usb-audio, oui.

Sinon, j’étais trop optimiste en considérant que c’était juste une histoire de multiplexage. Sur mes dernières tentatives, le message d’erreur parlant de descripteur de fichiers en mauvais état est systématique, alors même que ça fait longtemps que l’ordi n’a pas émis le moindre son.

Je comprends de moins en moins…

Bon, du progrès.

En fait, je viens de me rendre compte que le paquet gstreamer0.10-alsa n’était pas installé. Donc je l’ai installé, et le soucis de fréquence indiqué au deuxième post semble s’être réglé. Le player arrive maintenant à jouer le morceau comme il faut, avec ou sans les enceintes. Donc déjà, c’est chouette.

Par contre, j’ai toujours les trois lignes d’erreurs du premier post à chaque lancement (ce qui ne semble pas être problématique, mais est quand même curieux…) ; et l’autre erreur décrite dans le deuxième post est toujours présente : j’ai besoin d’attendre plusieurs secondes après qu’une lecture se soit arrêtée pour pouvoir relancer un autre morceau.
Il semble par ailleurs impossible de lancer le moindre morceau tant qu’une lecture est active ou laissée en pause, ce qui semble indiquer que le multiplexage a toujours besoin d’être activé. J’ai, à tout hasard, cherché « dmix » dans la liste des paquets, mais ça ne semble pas renvoyer grand chose…

Bref, si je peux désormais écouter des morceaux, ce qui résout une bonne partie du problème initial, je reste assez perplexe et j’aurais sans doute besoin d’un coup de main pour la conf’. Je ne passe donc pas encore en résolu.

dmix est activé de base (fourni avec ALSA, donc avec le kernel), ça se règle dans .asoundrc.
Je n’ai pas relu tes réponses, mais tu peux joindre ton .asoundrc si tu en as un.

Il est réduit à sa plus simple expression, à savoir les instructions qu’on m’a transmis ici même pour que les enceintes USB soient utilisées par défaut quand elles sont branchées :

pcm.!default { type plug slave.pcm usb } pcm.usb { type hw card 1 device 0 }

Je connais pas bien .asoundrc et je ne sais pas si tu en as une meilleure compréhension, mais je m’interrogerais sur cette partie:

pcm.usb { type hw card 1 device 0 }
… en particulier le [mono]type hw[/mono] me paraît contradictoire avec l’usage de dmix. Donc je ne sais pas si c’est ça qui le fait coincer.