4

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

4

2 回答 2

10

Ubuntu 提供不支持 D-Bus 的 Pulse Audio。要启用它,请将以下行放在文件末尾/etc/pulse/default.pa

load-module module-dbus-protocol

重启脉冲音频:

pkill pulseaudio; pulseaudio

在pulseaudio-mixer-cli项目中找到的解决方案演示了如何通过 D-Bus 使用 pulseaudio。

于 2013-10-19T23:04:57.627 回答
1

在我的系统(openSUSE 12.1)上,PA 确实指向一个现有的套接字。此代码(要点

#! /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: -
于 2012-11-19T17:01:11.950 回答