Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101896845
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-05-13 11:34:25

作者:龙飞  出自:


最近在学习Linux,主要考虑到跨平台开发。我一直都在思考关于中文输入的问题,在win32下解决起来那么麻烦,难道SDL的作者会不解决吗──如果是bug的话。事实证明,在Linux平台下,我们自己把GB2312往Unicode转换的工作就多余了。当前Linux内部用的就是UTF-8(我的系统是Debian 4.0),SDL的TTF函数完全可以正常工作。不过,在Linux下面也会有些问题,现在发现的有这些,大家有发现的继续帮我补充哈。

1、在Linux下,TTF_RenderUTF8_Blended 是可以正常渲染简体中文的。但是不知道为什么,Solid的渲染会报错,共享(动态链接)库的问题。

2、在Linux下,mid文件用SDL_mixer是打不开的。至少我的情况是这样,我装了ALSA的声卡驱动,不知道还需要做些什么才能放midi。

3、直接装了ALSA的驱动播放SDL_mixer是有噪音的。解决方法,也是打开Linux下软件混音(ESD)的方法如下:

混音可以让两种音乐同时播放,首先需要安装libesd-alsa0,用Synaptic或sudo apt-get install等方式都可以进行安装,它就在Ubuntu官方软件库中。然后,用sudo gedit或您喜欢的文本编辑器创建文件

/etc/asound.conf
pcm.card0 {
type hw
card 0
}

pcm.!default {
type plug
slave.pcm "dmixer"
}

pcm.dmixer {
type dmix
ipc_key 1025
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
periods 128
rate 44100
}
bindings {
0 0
1 1
}
}

接下来,运行"sudo gedit /etc/esound/esd.conf",将文件改成下面的内容:

auto_spawn=1
spawn_options=-terminate -nobeeps -as 2 -d default
spawn_wait_ms=100
# default options are used in spawned and non-spawned mode
default_options=

属实挺麻烦的。
阅读(451) | 评论(0) | 转发(0) |
0

上一篇:Linux 中编译C程序

下一篇:mysql设置超时

给主人留下些什么吧!~~