通过Dbus接触脉冲音频

时间:2012-11-15 17:53:07

标签: dbus pulseaudio

我正在尝试编写基本的卷应用程序。由于我是用Ruby编写的,所以我不想扩展C库或使用ffi,而是尝试用ruby-dbus来编写它。我得到了Address属性/org/pulse_audio/server_lookup1 1}}但地址指向的文件不存在。是否为dbus正确配置了Pulse Audio?

2 个答案:

答案 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: -