record_play
所属分类:Linux/Unix编程
开发工具:Unix_Linux
文件大小:2379KB
下载次数:60
上传日期:2011-04-16 20:24:31
上 传 者:
zhenglong705
说明: oss驱动下的播放和录音程序,录音时可以选择录音频率,声道,量化位数;相应的播放程序可以识别声音文件,设置声卡参数进行播发。
(oss driven playback and recording procedures, recording can choose to record the frequency, channel, quantization bits player can identify the corresponding sound files, set the parameters of broadcast sound.)
文件列表:
record_play\bingyu3.wav (2734204, 2011-04-13)
record_play\dahai0.wav (248004, 2011-04-13)
record_play\play (8662, 2011-04-13)
record_play\play.c (1532, 2011-04-13)
record_play\play.c~ (1470, 2011-04-13)
record_play\record (8988, 2011-04-13)
record_play\record.c (2104, 2011-04-13)
record_play\record.c~ (2104, 2011-04-13)
record_play\tanyongling2.wav (1367104, 2011-04-13)
record_play\taudio.c (4617, 2009-08-03)
record_play\taudio.h (2574, 2009-08-03)
record_play\wangfeng1.wav (341779, 2011-04-13)
record_play (0, 2011-04-14)
录音-播放程序介绍(使用OSS驱动模块)
record.c:读声卡数据,保存到文件中,实现录音功能。
play.c:读文件中的数据,写到声卡中,用来播放record.c保存的文件。
taudio.c:封装驱动程序提供的API,对声卡进行操作的各种函数,包括打开、关闭、设置声卡参数、读写声卡。
taudio.h:声明taudio.c中的各种函数,定义一些常量。
注:由于record只是简单的读取声卡中的数据,保存到wav文件中,没有加上标准wav文件的头部,
所以一般的音频播放器不能识别,只能使用play进行播放。
taudio.h中函数说明:
ta_handle_t ta_open(ta_char_t const* devname, ta_mode_t mode);
功能:以mode指定的模式,打开声卡,返回文件描述符
ta_close(ta_handle_t haudio);
功能:关闭声卡
ta_bool_t ta_play(ta_handle_t haudio, ta_byte_t* data, ta_size_t n);
功能:往声卡写入数据,数据由指针data和字节数n决定,成功返回1,失败返回0
ta_bool_t ta_record(ta_handle_t haudio, ta_byte_t* data, ta_size_t n);
功能:读取声卡中的数据,保存到指针data指向的地址,n指定字节数,成功返回1,失败返回0
ta_bool_t ta_set_sample_rate(ta_handle_t haudio, ta_size_t sample_rate);
功能:设置声卡采样频率,成功返回1,失败返回0
ta_bool_t ta_set_channels(ta_handle_t haudio, ta_size_t channels);
功能:设置声卡声道数,1(单声道)和2(立体声),成功返回1,失败返回0
ta_bool_t ta_set_quantify_bits(ta_handle_t haudio, ta_size_t quantify_bits);
功能:设置声卡量化位数,8和16,成功返回1,失败返回0
record使用:
./record 参数(0-3) 时间(秒) 保存文件名
参数0:单声道,量化位数-8,采样频率-8000
参数1:单声道,量化位数-8,采样频率-11025
参数2:单声道,量化位数-16,采样频率-22050
参数3:单声道,量化位数-16,采样频率-44100
play使用:
./play 文件名
录音过程:
1、open打开声卡设备/dev/dsp,只读
2、用ioctl函数设置声卡的采样频率、量化位数、声道数等参数
3、使用read读取声卡数据,即启动了声卡的 A/D转换器
4、把从声卡读取的数据保存到文件中
5、关闭声卡,关闭文件
播放过程:
1、open打开声卡设备/dev/dsp,只写
2、打开声音文件,读取其中的声卡参数
3、根据文件中的参数,用ioctl函数设置声卡的采样频率、量化位数、声道数等
4、读取文件中的数据
5、把读出的数据写入声卡中,即启动了声卡的 A/D转换器,实现放音功能
6、关闭声卡,关闭文件
OSS资料:
http://blog.csdn.net/lanmanck/archive/2010/08/17/5818723.aspx
近期下载者:
相关文件:
收藏者: