Cedega 之所以沒聲音其實我也不太確定為什麼.. 總而言之應該是ALSA 跟 PA 接軌的地方有點問題(因為wine 並沒有直接支援 PA, 所以應該是透過libasound 再由 PA 輸出). 網路上的同好似乎也都有相同無解的問題, 後來看到這篇 又挑起我的希望. 其重點是把 PulseAudio 當作ALSA 其中一個channel, 用dmix 來混合輸出.
步驟記錄一下:
( ~/.pulse/default.pa )
找到
#load-module module-alsa-sink
在他下面加兩行:
load-module module-alsa-source device=dsnooped這是讓pa 把聲音輸出到 dmix, 且增加一個source: dsnooped(等一下解釋), 接下來再把
load-module module-alsa-sink device=dmix
load-module module-hal-detectcomment 掉, (改成 #load-module module-hal-detect )
然後重開pulseaudio, 重新登出登入或是 (killall pulseaudio && pulseaudio -D)
如此一來, pa 就會輸出到 dmix, 成為alsa 的屬下! (誤
接下來是改 ~/.asoundrc
如果你有照pa 官方或是網路上很多的教學, 可能已經把pcm.!default 設成輸出到pulse, 那麼你可以把 pcm.!default, ctl.!default 刪掉了, 留pcm.pulse & ctl.pulse 就好.
此外, 我又加了
pcm.dsnooped {是要讓skype 不霸佔整個input source.
type dsnoop
ipc_key 12345
slave {
pcm "hw:1,0"
channels 1
}
}
---
好了! 在這邊大概是告一段落. 接下來就依自己的喜好而調整設定了.
若是希望程式使用 pulseaudio (可以調整個別程式的音量) 且程式直接支援pa, 那當然是直接選pulseaudio, 若只支援alsa, 則選 pulse (pcm.pulse). 若不希望使用pa, 則自行選其他的.
Skype 方面的設定. 我是將input 選 dsnooped (alsa), output兩個選pulse (pa through alsa) 這樣能正常講話又不會把音樂調小聲連 skype 都變小聲.
Cedega 的地方由於之前說過了, pa 用起來有問題, 所以選default (alsa) 來輸出聲音. 這樣就沒問題了!
--------------------
使用dsnoop 的原因是, 我跟朋友玩遊戲時會需要使用 mumble, 可是如果我選我的alsa input source 的話, skype 有電話來我就不能接了, 因為 alsa input 不給分享 source, 但是透過alsa 的 dsnoop plugin, 就可以分享這個input source (其實就有點像dmix).
沒有留言:
張貼留言