このPulseAudio.pmを実行するperlモジュールを作成しました。
次のような構文を使用できます。
use PulseAudio;
use constant TRACKIN => 'pci-0000:00:1d.7-usb-0:2.3:1.0'
my $pa = PulseAudio->new;
my $sink = $pa->get_sink_by([qw/properties device.bus_path/] => TRACKIN );
my $source = $pa->get_source_by(
[qw/properties device.bus_path/] => TRACKIN
, [qw/properties device.profile.name/] => 'analog-stereo'
);
$pa->exec({
sink => $sink
, source => $source
, prog => '/usr/bin/audacity'
});
もちろん、get_sink_by
およびで任意の基準を使用できますget_source_by
。から読むpacmd info
。これは@moberleyの回答と同じ考え方で機能しますが、独自の解析を強制するのではなく、perlライブラリを使用します。また、他の気の利いた機能もいくつか提供します。
私のポッドキャストショーでは、実際にこれを使用してSkypeを起動します。
$pa->exec({
sink => $sink
, source => $source
, prog => '/usr/bin/skype'
, args => ['--callto','btrlistener021']
});
(btrlistener*
Skypeの名前はblogtalkradio用です)。