0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个嵌入式音频项目总结

Q4MP_gh_c472c21 来源:未知 作者:胡薇 2018-06-11 10:07 次阅读

客户的需求是这样的,做一个声卡混音程序,实现将音箱要播放的声音和话筒输入的声音合成为输入,主要是用于嵌入式音频播放产品,所以大家以后见了音效特别好的产品不要相信销售人员的忽悠。。。“我们的产品音效好是用了XXX高科技材料,觉得处于国际领先水平...”,他们口中所谓的“高科技”,其实都是在软件上做了文章而已。

其实要实现这样的一个功能其实并不难,但我当时其实也是第一次做这样的程序(国内这个东西确实很好有人做过),心里也没底,但是凭借我扎实的基础,再加上我在图书馆泡了一天之后,我很快就有了思路...主要有两种方法可以实现:

1.可以使用DirectXsound接口做.将输出缓冲区音频叠加到输入缓冲区;

2.可以调用ASIO音频驱动,网上有很多教程.

这两个方案都是只能基于wince系统的,linux下我暂时没有找到一个很好的方案,但是最终我还是选择了第一个,因为毕竟图书馆关于direct的开发资料比较多,开发难度相对来说容易控制,但由于我不能公布全部代码,只能在这里梳理一下重要的几个知识点和程序中需要用到的API

其实我不怕大家嘲笑,在做这个项目之前我一直以为directx就只做3D处理的,但是在图书馆查了多媒体处理技术的相关书籍之后,才知道自己有多么无知。DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。显示部分担任图形处理的关键,分为Direct Draw(DDraw)和Direct 3D(D3D),前者主要负责2D图像加速。它包括很多方面:我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有 划线的部分都是用的DDraw。后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct 3D。声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能,我所接的这个项目就是利用了DirectSound来解决的。。

API调用方面的话主要掌握3个方面,1.对音频缓冲区的操作,2.对创建辅助缓冲区,3利用directx实现混音程序,这三方面的书籍,dirextx的技术书籍我相信应该都有,只要学会调用这三方面的API,做相关的音频项目自然会便觉得很方便,不是什么高科技,在这里我不想贴代码来忽悠大家,这东西又不是我自创的,花个几十元钱去亚马逊买本书大家都能学会,熟练以后,去游戏公司应聘的话,月薪7K应该不成问题。

我比较注重一些项目经验和设计思路,这样才能够助新手快速培养独立完成项目的思路,因为我不是职业程序员,从事的工作也是电气领域的工作,不会和大家抢工作,我接私活第一是为了接触各个领域方面的技术,拓展自己的专业视野,我大致了解一下开发流程即可,因为没有必要过于深入,因为国内所有领域说句老实话,核心技术都是国外的,除了一些逆向分析的黑客高手和一些科研工作者,一般人都很难了解,也没有这个时间,对于我这样一个业余的技术个体户来讲,我只要按时完成客户给我的项目,能保证产品就可以了,暂时不会研究的那么深入,不过等过个几年,等我的团队日益成熟了,也许会做自己的独立产品。

自己独立接项目的另一个好处就是可以积累一定的社会人脉,让社会来认可我的专业水平,我一直觉得做技术(不光是计算机,电气、机械等其他专业领域一样)和球星踢球很像,个人水平一旦被社会得到认可,身价自然水涨船高了,和比自己水平高一点的人一起做项目,技术能力自然很容易提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304768
  • 音频
    +关注

    关注

    29

    文章

    2868

    浏览量

    81490

原文标题:嵌入式er日常!我的第一个嵌入式项目....

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    ,实现些简单的功能,如点亮 LED 灯、读取传感器数据等,来加深对嵌入式技术的理解。你还可以参加些线上或线下的
    发表于 12-12 10:51

    【「嵌入式系统设计与实现」阅读体验】+ 学习STM32的案例

    嵌入式系统设计与实现——第六届全国大学生嵌入式芯片与系统设计竞赛芯片应用赛道优秀作品剖析》书的基本情况。今天来学习具体的案例。 这本
    发表于 12-06 22:22

    有什么比较热门的嵌入式项目

    大佬们想问下可以做什么样的嵌入式项目好找工作?工作1到2年左右
    发表于 11-08 09:57

    嵌入式学习建议

    ,最好能有自己动手的空间。不花分硬件钱想要学好嵌入式系统不实际,因为这是实践性很强的学科。好书,可以让人少走弯路,不被误导。好老师也可以是做过些实际项目的学长(
    发表于 10-22 11:41

    什么是嵌入式文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定功能的计算
    的头像 发表于 10-16 10:14 917次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备
    的头像 发表于 09-30 10:05 444次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始
    的头像 发表于 09-02 09:11 477次阅读

    适合初学者的嵌入式项目有哪些?

    适合初学者的嵌入式项目有哪些? 嵌入式学习是实践性很强的领域,通过实际项目可以帮助你巩固理
    发表于 07-11 10:23

    从事嵌入式方向,定要软硬件通吃?

    嵌入式系统开发领域,软件和硬件的界限常常模糊不清。常见的问题是,嵌入式软件工程师是否需要了解硬件。本文将探讨这问题的重要性,并分析
    的头像 发表于 06-05 08:10 1176次阅读
    从事<b class='flag-5'>嵌入式</b>方向,<b class='flag-5'>一</b>定要软硬件通吃?

    如何成为嵌入式C语言高手?

    文献、参加相关的培训课程、关注行业动态和参与技术讨论是不可或缺的。同时,我们也要勇于挑战自己,接触些复杂的嵌入式项目,通过实践不断提升自己的编程能力和解决问题的能力。 总结来说,成为
    发表于 04-07 16:03

    如何成为嵌入式C语言高手?

    文献、参加相关的培训课程、关注行业动态和参与技术讨论是不可或缺的。同时,我们也要勇于挑战自己,接触些复杂的嵌入式项目,通过实践不断提升自己的编程能力和解决问题的能力。 总结来说,成为
    发表于 03-25 14:12

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的种解决方案。嵌入式系统是种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设
    的头像 发表于 03-15 14:29 1237次阅读

    嵌入式学习步骤

    嵌入式行业是涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式
    发表于 02-02 15:24

    嵌入式物联网开源项目分享

    很多初学者或者互联网转行从业者,在学习嵌入式技术的基本理论概念之后,可能会感觉到迷茫,感觉自己虽然学了不少,但却不知道怎么用到项目上。
    的头像 发表于 01-24 10:36 1509次阅读
    <b class='flag-5'>嵌入式</b>物联网开源<b class='flag-5'>项目</b>分享

    嵌入式音频应用开发介绍

    音频是声音的种数字化表示方式,它的应用领域非常多,很多领域的应用技术已经很成熟,比如常见的:通信、娱乐、医疗(超声)、人机交互等等。就我目前接触到的消费类嵌入式设备而言,
    的头像 发表于 12-27 09:32 1119次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>音频</b>应用开发介绍