I have always avoided using PulseAudio because of how problematic it is, but since Skype 4.3 has now dropped Alsa support, I am forced to use PulseAudio, but one problem; it just doesn't work. I can't remove it because Skype will not work without it (as far as I'm aware) and only show virtual devices in the Audio options. It is only showing dummy output devices and no input devices despite having a built-in microphone. Is there any way to fix this, or better yet is there any way to use Skype without PulseAudio?
Ubuntu – PulseAudio problems (only showing dumthe output)
pulseaudioskypesound
Related Solutions
I've been suffering with the same issue for a while, and had finally a chance to look at it. It turns out that unloading and reloading the Pulseaudio module responsible for the audio device works for me.
Unloading and reloading the module, by hand
In terminal window, enter command
pacmd list-cards
and from the output, find the audio device that is missing profiles. You will probably get several cards, and need to locate the right one. Mine looks like this:
[...]
index: 8
name: <alsa_card.usb-Logitech_Logitech_USB_Headset-00-Headset>
driver: <module-alsa-card.c>
owner module: 27
properties:
alsa.card = "1"
alsa.card_name = "Logitech USB Headset"
[... more output ...]
[...]
From your output, look up the line "owner module". That is the module you need to unload, but you will need to look at it's parameters first, so you can reload it. Enter command
pacmd list-modules
and locate the module driving your card. Again, the relevant part of the output in my case looks like this (index matches owner module from output of pacmd list-cards):
[...]
index: 27
name: <module-alsa-card>
argument: <device_id="1" name="usb-Logitech_Logitech_USB_Headset-00-Headset" card_name="alsa_card.usb-Logitech_Logitech_USB_Headset-00-Headset" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1">
used: 2
load once: no
properties:
[... more output ...]
[...]
You will need the module name and arguments to reload it.
To unload the module, enter command (replace module-index with appropriate value from your output)
pacmd unload-module module-index
To reload the module after it's unloaded, enter command
pacmd load-module module-name module-arguments
Replace module-name and module-arguments with values from output of pacmd list-modules. Leave out the angle brackets.
Now the module should be reloaded, and with some luck your headset profiles are back.
Applying automation
The above steps are a lot of work if you need to reset your device often, as the module index keeps changing and you need to look it up every time. I wrote a shell script for myself to automate the worst of it:
#!/bin/bash
if [ -z "$1" ]; then
echo "Pulseaudio has these cards:"
pacmd list-cards | grep 'name: '
exit 0
fi
MODULE_INDEX=`pacmd list-modules | tac | grep -A 10 -e "argument: .*$1" | grep 'index:' | head -n 1 | cut -d ':' -f 2 | tr -d ' '`
MODULE_NAME=`pacmd list-modules | tac | grep -A 10 -e "argument: .*$1" | grep 'name:' | head -n 1 | cut -d ':' -f 2 | tr -d '<>'`
MODULE_ARGUMENTS=`pacmd list-modules | tac | grep -e "argument: .*$1" | head -n 1 | cut -d ':' -f 2 | tr -d '<>'`
echo "Module index is $MODULE_INDEX"
echo "Module name: $MODULE_NAME"
echo "Module args: $MODULE_ARGUMENTS"
if [ -z "$MODULE_INDEX" ]; then echo "Could not find module index"; exit 0; fi
if [ -z "$MODULE_NAME" ]; then echo "Could not find module name"; exit 0; fi
if [ -z "$MODULE_ARGUMENTS" ]; then echo "Could not find module arguments"; exit 0; fi
echo "Unloading module"
pacmd unload-module $MODULE_INDEX
echo ""
echo "Reloading module"
pacmd load-module $MODULE_NAME $MODULE_ARGUMENTS
echo ""
When run without arguments, the script lists the cards Pulseaudio knows of. When a part of a card's name is given as argument, the script attempts to unload and reload the relevant Pulseaudio module.
Best Answer
It is possible that PulseAudio hasn't been initialized fully. Try
pulseaudio -k
followed bypulseaudio --start
. If this still doesn't help, try to restart your system and then check if Skype detects PA correctly.If it still doesn't work, please provide more info on what you tried (and what failed) in the original question. Also make sure that you are indeed running Skype 4.3.
But if your question is about still using Skype with Alsa only, the answer seems to be: "no".
See also: