2012-11-15 42 views
3

我正在嘗試編寫基本的卷應用程序。因爲我正在用Ruby寫這篇文章,所以我不想擴展C庫或者使用ffi,而是試圖用ruby-dbus來寫這篇文章。我得到Address Property與/org/pulse_audio/server_lookup1,但是地址指向的文件不存在。 Pulse Audio是否正確配置爲dbus通過Dbus聯繫脈衝音頻

回答

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

Ubuntu的船脈衝音頻沒有d-總線支持。要啓用它,把下面的行以文件/etc/pulse/default.pa的末尾:

load-module module-dbus-protocol 

重啓脈衝音頻:

pkill pulseaudio; pulseaudio 

Solution發現在pulseaudio-mixer-cli項目,該項目演示瞭如何使用過d總線的pulseaudio。

+1

我想在每個用戶級別進行配置,文件是'$ HOME/.config/pulse/default.pa'。 –