我正在尝试编写基本的卷应用程序。由于我是用Ruby编写的,所以我不想扩展C库或使用ffi
,而是尝试用ruby-dbus
来编写它。我得到了Address
属性/org/pulse_audio/server_lookup1
1}}但地址指向的文件不存在。是否为dbus
正确配置了Pulse Audio?
答案 0 :(得分:8)
Ubuntu在没有D-Bus支持的情况下发布了Pulse Audio。要启用它,请将以下行放在文件/etc/pulse/default.pa
的末尾:
load-module module-dbus-protocol
重启Pulse Audio:
pkill pulseaudio; pulseaudio
在Solution项目中找到pulseaudio-mixer-cli,演示了如何在D-Bus上使用pulseaudio。
答案 1 :(得分:1)
在我的系统(openSUSE 12.1)上,PA确实指向现有套接字。这段代码 (gist)
#! /usr/bin/env ruby
require 'rubygems'
require 'dbus'
b = DBus.session_bus
ps = b.service 'org.PulseAudio1'
po = ps.object '/org/pulseaudio/server_lookup1'
po.introspect
pi = po['org.PulseAudio.ServerLookup1']
a = pi['Address']
path = a.split('=').last
system 'stat', path
产生
$ ruby ~/snippets/dbus-pulseaudio.rb
File: `/home/mvidner/.pulse/7c5e87305bb28b5a0661f8180000054c-runtime/dbus-socket'
Size: 0 Blocks: 0 IO Block: 4096 socket
Device: 801h/2049d Inode: 1332590 Links: 1
Access: (0777/srwxrwxrwx) Uid: (11018/ mvidner) Gid: ( 100/ users)
Access: 2012-11-19 09:07:20.566053943 +0100
Modify: 2012-11-19 09:07:20.566053943 +0100
Change: 2012-11-19 09:07:20.566053943 +0100
Birth: -