测试环境:
  Ubuntu 14
  MonoDevelop
  CodeBlocks
  1、建立一个共享库(shared library)
  这里用到了linux下的音频播放库,alsa-lib。 alsa是linux下的一个开源项目,它的全名是Advanced Linux Sound Architecture。它的安装命令如下:
  sudo apt-get install libasound2-dev
  使用 Coceblocks 建立一个 shared library 项目,命名为libTest2,编程语言选择C。在main中加入下代码:
1#include<alsa/asoundlib.h>
2#include<stdio.h>
3
4
5snd_pcm_t*handle;
6snd_pcm_sframes_tframes;
7
8
9intPcmOpen()
10{
11
12if(snd_pcm_open(&handle,"hw:0,0",SND_PCM_STREAM_PLAYBACK,0)<0)
13{
14printf("pcmopenerror");
15return0;
16}
17
18if(snd_pcm_set_params(handle,SND_PCM_FORMAT_U8,SND_PCM_ACCESS_RW_INTERLEAVED,1,8000,1,500000)<0)//0.5sec500000
19{
20printf("pcmseterror");
21return0;
22}
23
24return1;
25}
26
27
28
29voidPlay(unsignedchar*buffer,intlength)
30{
31frames=snd_pcm_writei(handle,buffer,length);
32if(frames<0)
33{
34frames=snd_pcm_recover(handle,frames,0);
35}
36}
37
38
39
40
41intPcmClose()
42{
43snd_pcm_close(handle);
44return1;
45}
  在编译的时候,记得链接alsa-lib库。具体方法是在codeblocks的编译对话框中,找到linker settings选项,在Other linker options中输入:-lasound。
  如图所示:

  当然,也可以手工编译。cd 进main.c所在的目录,执行以下命令:
  gcc -o main.o -c main.c
  gcc -o libTest1.so -shared main.o -lasound