当前位置: 首页 > news >正文

网站做动态虚线个人网站找谁建设好

网站做动态虚线,个人网站找谁建设好,找建网站模板,怎么创建自己的网络平台基于ALSA库实现音量调节 ALSA库实现音量调节1、使用alsamixer工具查看音频接口2、完整代码2.1、snd_mixer_open2.2、snd_mixer_attach、2.3、snd_mixer_selem_register2.4、snd_mixer_load2.5、snd_mixer_first_elem/snd_mixer_elem_next2.6、snd_mixer_selem_get_playback_vol… 基于ALSA库实现音量调节 ALSA库实现音量调节1、使用alsamixer工具查看音频接口2、完整代码2.1、snd_mixer_open2.2、snd_mixer_attach、2.3、snd_mixer_selem_register2.4、snd_mixer_load2.5、snd_mixer_first_elem/snd_mixer_elem_next2.6、snd_mixer_selem_get_playback_volume_range/snd_mixer_selem_get_capture_volume_range2.7、snd_mixer_selem_set_playback_volume_all 3、完整程序4、注意细节4.1、初始化顺序4.2、声卡设备的选择4.3、元素查找4.4、单双通道音量设置 ALSA库实现音量调节 1、使用alsamixer工具查看音频接口 首先可以通过alsamixer工具图形化查看声卡的接口名也可以使用该工具通过图形尝试调节音频大小能帮助你后面更好的实现从应用层去调节直接输入alsamixer即可自动弹出图形界面如下图Speaker是我播放的元素名称上面的55是音量大小通过键盘的上下键即可调节大小这两个参数在后面应用层时都会用到 2、完整代码 2.1、snd_mixer_open 打开并实例化一个空的混音器 2.2、snd_mixer_attach、 连接到选择的声卡控制设备 2.3、snd_mixer_selem_register 注册混音器 int snd_mixer_selem_register(snd_mixer_t *mixer,struct snd_mixer_selem_regopt *options,snd_mixer_class_t **classp);2.4、snd_mixer_load 加载混音器 2.5、snd_mixer_first_elem/snd_mixer_elem_next 找到混音器的第一个元素/查找下一个元素 2.6、snd_mixer_selem_get_playback_volume_range/snd_mixer_selem_get_capture_volume_range 获取指定元素的音量范围 int snd_mixer_selem_get_playback_volume_range(snd_mixer_elem_t *elem,long *min,long *max); int snd_mixer_selem_get_capture_volume_range(snd_mixer_elem_t *elem,long *min,long *max);2.7、snd_mixer_selem_set_playback_volume_all 一次性设置指定元素所有声道的音量 3、完整程序 下面的函数实现音量的获取和调节通过ALSA库的API接口注册一个混音器设备对象使用该对象连接到想要控制的声卡然后开始查找该声卡中的元素找到想要控制的元素然后对元素进行get和set本函数实现对Speaker元素的调节控制扬声器声音大小通过应用程序调节完音量后可以使用alsamixer工具查看音量是否成功调节。 /* volume control init */ void volume_control_init(void) {snd_mixer_t *mixer;snd_mixer_elem_t *elem;debug_msg(snd_mixer_open(mixer,0),opening mixer); // 打开混音器设备debug_msg(snd_mixer_attach(mixer, hw:1),attaching mixer); // 连接到默认的声卡debug_msg(snd_mixer_selem_register(mixer, NULL, NULL),registering mixer); // 载入声卡配置debug_msg(snd_mixer_load(mixer),load mixer);// 循环找到自己想要的elementelem snd_mixer_first_elem(mixer);while(elem){// find element name此处要找的就是上面看的speaker元素if(strcmp(Speaker,snd_mixer_selem_get_name(elem)) 0){printf(elem name : %s\n,snd_mixer_selem_get_name(elem));break;}elem snd_mixer_elem_next(elem);}if(!elem){printf(snd_mixer_find_selem Error\n);snd_mixer_close(mixer);mixer NULL;return;}long min, max;snd_mixer_selem_get_playback_volume_range(elem, min, max);printf(volume range: %ld -- %ld\n, min, max);long lVal, rVal;snd_mixer_handle_events(mixer); // 确保混音器状态和应用程序状态的同步snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_LEFT, lVal);snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_RIGHT, rVal);printf(currnet volume: leftVal %ld, rightVal %ld\n, lVal, rVal);snd_mixer_selem_set_playback_volume_all(elem, 25);// 释放资源snd_mixer_close(mixer); }4、注意细节 4.1、初始化顺序 在初始化混音器设备时需要先初始化好PCM声卡设备不然PCM初始化时会重置导致音频设置失效 4.2、声卡设备的选择 程序中通过调用snd_mixer_attach选择声卡设备选择时需要注意跟PCM选择声卡设备时不同PCM初始化时选择的是声卡几设备几比如声卡1设备0那么PCM初始化打开设备时要传入snd_pcm_open(pb_handle, plughw:1,0,SND_PCM_STREAM_PLAYBACK, 0)而mixer初始化时只需要选择声卡而不用详细到设备依然是声卡1设备0那么mixer连接到声卡时只需要传入snd_mixer_attach(mixer, hw:1)。 4.3、元素查找 在mixer中有很多的element元素也就是最开始通过图形化看到的各种元素在ALSA中好像没有函数能够直接查找到某个元素只能通过snd_mixer_first_elem找到第一个元素然后通过snd_mixer_elem_next开始查找下一个元素一直查下去直到通过snd_mixer_selem_get_name发现当前的元素是你想要调节的元素为止你可以选择将这种方式封装起来成为一个能指定查找的函数。 4.4、单双通道音量设置 你可以通过snd_mixer_selem_is_playback_mono查询该声卡是否是单通道mono单stereo双然后通过snd_mixer_selem_set_capture_volume(elem, SND_MIXER_SCHN_FRONT_LEFT, volume)的第2个参数来指定左右通道的音量但是我没什么时间深究所以直接选择snd_mixer_selem_set_capture_volume_all来设置总音量。 同时需要注意一下音量的调节虽然在alsamixer工具的图形化中可以看到音量能从0调节到100但是程序中使用snd_mixer_selem_get_playback_volume获取音量时会发现范围在0-30并且如果你使用amixer get DAC HPOUT Leftget一下元素的值查看时就会发现limits的值也为0-30因此在设置音量时也要注意设置的值不要超过这个范围不能以图形化中的范围去设置。 rootfirefly:~/twoway# amixer get DAC HPOUT Left Simple mixer control DAC HPOUT Left,0Capabilities: volume volume-joinedPlayback channels: MonoCapture channels: MonoLimits: 0 - 30Mono: 30 [100%] [6.00dB]
http://www.hkea.cn/news/14346367/

相关文章:

  • 网站备案下来以后怎么做网页网站在手机上内页图不显示
  • 分销网站建设方案大连 响应式网站
  • 河南省洛阳市建设银行的网站长沙好玩的地方景点推荐
  • 仿素材网站源码宿州做企业网站公司
  • 做网站能用本地的数据库嘛网站结构分类
  • 做软件下载网站违法吗晋江网络推广公司
  • 一个备案可以做几个网站php 网站开发流程图
  • 网站建设灬金手指下拉十五人力外包系统
  • 做网站的主营业务简单网站制作成品
  • 常州网站制作公司有哪些手机制作海报的软件免费
  • 单页面网站 seowordpress简约主题分享
  • 怎样做安居客网站wordpress分段加载
  • 建设建网站萍乡网站制作公司
  • 网络公司+网站建设+小程序电子商务网站名称和网址
  • wordpress免费企业站主题公司企业网站程序
  • 有没有可以做网站动图的软件《python编程基础》
  • 荣泰建设集团网站栖霞做网站价格
  • 自命题规划一个企业网站服装网站建设的目的和意义
  • 北塘网站制作wordpress开发+文档下载
  • 有哪些网站可以做全景效果图宁波seo网站排名
  • 个人备案的公司网站深圳网站建设的费用
  • 怎么在百度创建网站wordpress推荐人插件
  • 中时讯通信建设有限公司网站服装设计专业大学世界排名
  • 免费软件app下载大全正能量网站哪个网站做的win10系统好
  • 用ps怎么做网站的效果图网站建设项目总结报告
  • 个人工作室网站模板杭州本地网站
  • 建立企业网站选什么好四平网站公司
  • 无锡网页网站制作公司网站建设好了怎么进行推广
  • 简单学校网站模板定制app开发需求
  • 苏宁易购网站建设的目的广东东莞房价