QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3313|回复: 9

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

[复制链接]
发表于 2010-1-10 09:04:16 | 显示全部楼层 |阅读模式
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音乐就听不到了,两难。
发表于 2010-1-10 09:16:21 | 显示全部楼层
需要mid时候才加载timidity。

有冲突时候暂停timidity服务
回复

使用道具 举报

 楼主| 发表于 2010-1-10 09:41:01 | 显示全部楼层
奇怪的是只要我加载了timidity(timidity -iA)服务的话,web的timidity -Os调用和mednafen都会失败。
回复

使用道具 举报

发表于 2010-1-10 10:35:31 | 显示全部楼层
无声音可以参考一下
http://www.lemote.com/bbs/viewth ... ight=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进程,声音恢复。
回复

使用道具 举报

 楼主| 发表于 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。
回复

使用道具 举报

发表于 2010-1-10 10:46:14 | 显示全部楼层
玩游戏的时候,没有太多的需要web的mid吧?
更加需要的是游戏的声音。

玩完游戏再恢复mid就是了
回复

使用道具 举报

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


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

使用道具 举报

 楼主| 发表于 2010-1-10 10:50:24 | 显示全部楼层
fluidsynth也占用声卡,只要它运行mednafen也没声音,总的来说还是开发的问题,或者有可能是我们自己编译默认参数的问题。
回复

使用道具 举报

发表于 2010-1-10 10:59:17 | 显示全部楼层
原帖由 haulm 于 2010-1-10 10:50 发表
fluidsynth也占用声卡,只要它运行mednafen也没声音,总的来说还是开发的问题,或者有可能是我们自己编译默认参数的问题。


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

使用道具 举报

发表于 2010-1-10 14:18:32 | 显示全部楼层
timidity 的输出用的是 oss 模拟吧?貌似现在 alsa 打开软件混音应该不存在独占的问题啊?
印象里以前遇到软件用 alsa 的 oss 模拟时会导致独占的。

楼主为什么不试试让 timidity 用 Arts 、ESD 等等这种软件混音器来中转播放?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 16:27 , Processed in 0.046291 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表