haulm 发表于 2010-1-10 09:04:16

mednafen 模拟器一直无声,最后找到原因

nitializing sound...
Using "ALSA" audio driver with device "default":ALSA Error: snd_pcm_open(&alsa_pcm, id ? id : "hw:0", SND_PCM_STREAM_PLAYBACK, 0) 设备或资源忙
Error opening a sound device.
升级了好多东西,最后想到timidity++,删掉这玩意后正常了,可是如果不加载timidity,那Web上的mid音乐就听不到了,两难。

tanhitzq 发表于 2010-1-10 09:16:21

需要mid时候才加载timidity。

有冲突时候暂停timidity服务

haulm 发表于 2010-1-10 09:41:01

奇怪的是只要我加载了timidity(timidity -iA)服务的话,web的timidity -Os调用和mednafen都会失败。

tanhitzq 发表于 2010-1-10 10:35:31

无声音可以参考一下
http://www.lemote.com/bbs/viewthread.php?tid=20410&highlight=pcm%2Btanhitzq

lsof来查,先查的是dsp,无结果,后来又查了pcm,发现居然是scim占用了,

# lsof |grep pcm
scim-laun 4500       saga   13u      CHR   116,16       0t0       2777 /dev/snd/pcmC0D0p
scim-help 4504       saga   13u      CHR   116,16       0t0       2777 /dev/snd/pcmC0D0p
scim-pane 4505       saga   13u      CHR   116,16       0t0       2777 /dev/snd/pcmC0D0p
scim-brid 4507       saga   13u      CHR   116,16       0t0       2777 /dev/snd/pcmC0D0p

杀掉scim进程,声音恢复。

haulm 发表于 2010-1-10 10:36:08

一些新的发现吧,timidity -iA做为音序服务,只有在运行了fluidsynth后aseqmm的mid播放器才会正常工作(由于升级了libsndfile所以也说不清了,之前好象不是这样的),timidity -iA可能是被kde4记忆了,所以开机就启动,所以造成mednafen无法读取pcm设备。
完全停止timidity -iA和fluidsynth的应用后很正常,只是任何有进行mid音乐的播放相关调用,mednafen就无声,如果mednafen先启动了Web的mid调用失败。
看来只能算是mednafen自己的问题了,另外一款游戏模拟器就没这个问题,mednafen目前没有界面,或许我可以写一个指令脚本或Qt4界面来调用mednafen。

tanhitzq 发表于 2010-1-10 10:46:14

玩游戏的时候,没有太多的需要web的mid吧?
更加需要的是游戏的声音。

玩完游戏再恢复mid就是了

tanhitzq 发表于 2010-1-10 10:48:45

原帖由 haulm 于 2010-1-10 10:36 发表 http://www.linuxfans.org/bbs/images/common/back.gif
一些新的发现吧,timidity -iA做为音序服务,只有在运行了fluidsynth后aseqmm的mid播放器才会正常工作(由于升级了libsndfile所以也说不清了,之前好象不是这样的),timidity -iA可能是被kde4记忆了,所以开机就启动,所以造成medna ...

其实是timidity占用声卡的问题。timidity和好多声音软件有冲突,好像和dosbox也有些冲突。
timidity这个软件太老了。

haulm 发表于 2010-1-10 10:50:24

fluidsynth也占用声卡,只要它运行mednafen也没声音,总的来说还是开发的问题,或者有可能是我们自己编译默认参数的问题。

tanhitzq 发表于 2010-1-10 10:59:17

原帖由 haulm 于 2010-1-10 10:50 发表 http://www.linuxfans.org/bbs/images/common/back.gif
fluidsynth也占用声卡,只要它运行mednafen也没声音,总的来说还是开发的问题,或者有可能是我们自己编译默认参数的问题。

只能说linux的mid软件太菜了,win下怎么播放mid都没有独占声卡的问题。

jiangtao9999 发表于 2010-1-10 14:18:32

timidity 的输出用的是 oss 模拟吧?貌似现在 alsa 打开软件混音应该不存在独占的问题啊?
印象里以前遇到软件用 alsa 的 oss 模拟时会导致独占的。

楼主为什么不试试让 timidity 用 Arts 、ESD 等等这种软件混音器来中转播放?
页: [1]
查看完整版本: mednafen 模拟器一直无声,最后找到原因