web-dev-qa-db-fra.com

La lecture audio s'arrête dans Unity lorsque je change d'utilisateur

Ma configuration

Ordinateur portable System 76 Kudu-Pro avec Ubuntu 16.04 LTS que j'ai installé et mis à jour régulièrement tous les deux ou trois jours. J'utilise Unity comme bureau principal avec 12 utilisateurs parmi lesquels je passe souvent pour effectuer des tâches spécifiques et pour l'isolation de la sécurité.

Le problème

Je commence la lecture de la musique, puis change d’utilisateur et la musique s’arrête. Cela se produit même si je ssh sur localhost, désélectionne la variable d'environnement DISPLAY, deviens root et joue la musique à l'aide d'une commande ( mplayer ) de cette session. J'ai rencontré ce problème pour la première fois le 14.04 LTS, première version pour laquelle j'utilisais Unity et qui était pré-installé sur l'ordinateur portable. lorsque vous revenez à l'utilisateur qui a commencé à lire la musique, celle-ci reprend. Ceci s'applique également aux fichiers audio lus par le navigateur, tels que les vidéos Youtube.

Ma question

Comment puis-je jouer de la musique qui continue de jouer (dans un fond virtuel?) Lorsque je change d'utilisateur? En outre: Est-ce que PulseAudio est impliqué dans ceci?

Considérations

Si la solution nécessite un accès root ou Sudo, je peux le faire. Si la solution nécessite une programmation à petite échelle, je peux le faire en C et/ou en Python. Je pensais que l’un des moyens de contourner le problème serait d’obtenir un périphérique audio USB et j’espère que ce deuxième périphérique audio pourra fonctionner.

2
Skaperen

Lancer PulseAudio sur l’ensemble du système

Lorsque PulseAudio est exécuté en mode système, tout fichier audio démarré par un utilisateur autorisé sera lu en arrière-plan tant que cet utilisateur est connecté.

Avant de poursuivre, veuillez lire ce qui suit sur la raison pour laquelle exécuter généralement l’ensemble du système n’est pas une bonne idée:

Néanmoins, nous pouvons le faire si nous le souhaitons. Seuls les comptes autorisés pourront alors contrôler le volume ou démarrer une autre instance de sortie audio.

Préparation du système pour l'exécution de Pulseaudio en mode système global

Notez toutes les modifications que vous avez apportées pour pouvoir les annuler si vous n'aimez pas le résultat (j'ai tout testé sur une machine virtuelle).

  1. Désactiver le lancement automatique de pulseaudio pour l'utilisateur qui contrôlera l'audio

    echo autospawn = no > $HOME/.config/Pulse/client.conf
    

    Cela empêche la génération automatique de pulseaudio pour les comptes $ HOME donnés. Les paramètres définis ici remplacent les paramètres globaux définis dans /etc/Pulse, qui peuvent bien entendu être définis alternativement.

  2. Arrête une instance en cours de pulseaudio en mode utilisateur

    pulseaudio -k
    
  3. Préparer les utilisateurs et les groupes nécessaires (au cas où ils n'existeraient pas encore)

    Sudo addgroup --system Pulse
    Sudo adduser --system --ingroup Pulse --home /var/run/Pulse pulse
    Sudo addgroup --system Pulse-access
    Sudo adduser Pulse audio
    
  4. Autoriser les utilisateurs à accéder à l'ensemble du système PulseAudio

    Sudo adduser <username> Pulse-access
    

    Seuls les utilisateurs ajoutés à Pulse-access pourront contrôler le volume d'un fichier audio en cours de lecture.

Démarrer pulseaudio en mode système

Sudo pulseaudio --system

Source et lectures supplémentaires: Exécution de PulseAudio en tant que démon système

2
Takkat