综合设计报告-专业音频播放系统的设计与实现(2016-1-11)

综合设计报告-专业音频播放系统的设计与实现(2016-1-11)

ID:17940560

大小:798.00 KB

页数:22页

时间:2018-09-11

综合设计报告-专业音频播放系统的设计与实现(2016-1-11)_第1页
综合设计报告-专业音频播放系统的设计与实现(2016-1-11)_第2页
综合设计报告-专业音频播放系统的设计与实现(2016-1-11)_第3页
综合设计报告-专业音频播放系统的设计与实现(2016-1-11)_第4页
综合设计报告-专业音频播放系统的设计与实现(2016-1-11)_第5页
资源描述:

《综合设计报告-专业音频播放系统的设计与实现(2016-1-11)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子科技大学综合设计报告题目全称:专业音频播放系统的设计与实现.课程名称:综合课程设计.指导老师:黄俊职称:讲师.序号姓名学号班号报告成绩(40分)设计过程成绩(30分)1廖奇2014220105018信工5班2徐捷鑫2014220105017信工5班3沈柯2014220101024信工1班4杨盼2014220101022信工1班5王蜀汉2014220101006信工1班6何健宇2014220101001信工1班(注:学生姓名填写按学生对该综合设计的贡献及工作量由高到底排列,分数按排名依次递减。序号排位为“1”的学生成绩最高,排位为“6”的学生成绩最低。)指导老

2、师评语:指导签字:22本小组成员任务分工情况序号姓名学号分工完成情况1沈柯2014220101024代码编写,PPT制作,相关系数2廖奇2014220105018代码编写,实验报告撰写,多线程3徐捷鑫2014220105017代码编写,答辩总讲,解码,初始化4何健宇2014220101001代码编写,波形图5王蜀汉2014220101006代码编写,实时播放长度6杨盼2014220101022代码编写,实时Vu221、综合训练目的音频播放是当前融媒平台的重要组成部分,音频的电平、左右声道相位和信噪比等参数,是衡量音频指标的重要参数。大部分办公PC电脑都工作在wi

3、ndows操作系统环境下,Windows提供了Wavedriver、DirectX等专门用于音频播放的API,开发者可以利用API进行音频播放控制。音频文件涉及到各种编码格式,用户要实现音频播放,就需要选择一款支持多格式的音频播放器。FFMPEG是当前主流的开源的音视频编解码项目平台,支持主流的音频、视频流数据的各种数据格式,同时支持Windows、Linux、Mac等操作系统。本课题基于FFMPEG开源项目,设计并实现从音频解码、音频回放,并实时显示音频的电平和左右声道相位差。通过这次课程设计,需要掌握软件项目开发流程,熟练C++编程语言和VisualStud

4、io编程平台,掌握多媒体数据文件格式的基本知识,掌握利用API(Wavedriver和FFMPEG)开发软硬件结合的项目的基本方法,并提高软件系统分析能力。2、综合训练任务1)熟悉MP3,MP4,WAVE,MPEG等数据文件格式,实现MP3音频文件、MP4视频文件等解码设计,提取音频PCM数据流。2)根据PCM数据流,计算音频的左右声道相位相关系数和电平大小,并实时显示相位相关系数和电平大小的实时显示。3)掌握WindowswaveAPI,并实现声卡控制音频播放,并实时显示播放进度。4)掌握多线程编程的基本知识,实现播放线程和解码线程的数据同步处理5)掌握Vis

5、ualStudioC++开发平台,设计易用和美观的UI。223、专业音频播放系统的的设计3.1播放的总体流程3.1.1启动播放读取文件初始化解码器根据文件的采样率初始化wavedriver预解码9个子buffer启动播放线程启动解码线程图3-1播放流程播放的总体流程图如上所示。首先先读取音频或视频文件(读取视频文件时MP4,则只提取其音频部分),并根据文件的格式与采样率,初始化声卡,并以此判断在解码过程中使用何种解码器。初始化结束后,先进行预解码存进缓存buffer中,之后启动播放线程。播放线程结束后,则再次启动解码线程,准备下一次播放。为了播放线程与解码线程的

6、同步进行,我们运用了多线程的思想来解决这一问题。采样率,也称为采样速度或者采样频率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。223.1.2、定时刷新UI(1)播放时间长度。(2)实时Vu。(3)实时左右声道相关系数。(4)实时波形。UI图形界面在播放过程中实时刷新,这四步为同步处理。UI图形界面可以实时显示当前的Vu、波形图、相关系数以及播放时间,并能够

7、随时停止。3.2、播放线程模块的设计在启动播放线程时,先将启动标志赋值为true。若尚未播放结束,则先遍历buffer进行播放。每次访问buffer时,若尚未到达播放当前buffer的时间,则将播放线程挂起等到下一次访问,否则进行播放并移动播放指针,对下一个buffer进行判断。当buffer数组的内容已经播放结束时跳出循环,并将启动标志赋值重新赋值为false。在实际操作中,我们定义了两个bool类型变量m_threadPlay与m_threadRead分别作为播放线程的启动标志与解码线程的启动标志。启动播放线程播放线程启动标志赋值为true播放是否结束是否是

8、否到播放时间否是挂起线程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。