实时音频采集、播放技术的研究

实时音频采集、播放技术的研究
实时音频采集、播放技术的研究

收稿日期:2002203218;修返日期:2002206210

实时音频采集、播放技术的研究

荣治国,陈松乔

(中南大学信息工程学院,湖南长沙410083)

摘 要:介绍了音频采集、播放的三种技术,分别给出实现模型;并对三种技术作出对比分析,以此提出

了声音实时传输的依据,并应用于所开发的基于IP 的桌面视频会议系统中。关键词:声音采集、播放;媒体控制器;Directsound ;实时传输中图法分类号:TP393 文献标识码:B 文章编号:100123695(2003)0120156203 在信息化日益加速的今天,数字多媒体的应用越来越广泛,随着宽带网概念深入人心,数字多媒体进入到了一个更广阔的空间,许多应用课题都围绕着两者展开,其中可视电话、电话会议系统和视频会议系统发展迅速,这些都要涉及到多媒体数据通信。在多媒体数据通信中,要求有良好的实时性,能够对多媒体数据进行细节的操作,如压缩、实时流传输等,而在这些应用之中,因为现实的网络状况还难以满足较好的实时视频通讯,音频数据在其中就越显重要。本文对比分析了实时音频采集、播放的三种技术,以期为音频数据通讯提供参考。

1 音频采集、播放的三种模式

W indows 通过高级音频函数、媒体控制接口MCI [1,2]设备驱动程序,低级音频函数MIDI M apper 、低级音频设备驱动,以及DirectS ound 提供了音频服务,可以从声卡获取音频流。图1说明了应用程序与提供音频支持的W indows

成员之间的关系。

图1 音频系统结构

使用MCI 的方法极其简便,灵活性较差;使用低级

音频函数的方法相对来说难一点,但是能够对音频数据进行灵活的操控;而采用DirectS ound 的方法,控制声音数据灵活,效果比前两者都好,但实现起来是三者中最难的。

2 使用MCI 方法实现音频采集与播放

用MCI 方法是很方便的,它对媒体设备控制主要通过命令接口函数mciSendC ommand ()或者字符串接口函

数mciSendS tring ()来完成,这两个函数的作用相同。命令接口函数比命令字符串使用起来要复杂,但它为MCI 提供了更为强大的控制能力。下面就介绍命令接口函数的使用。

211 命令接口函数的原型如下

MCIERROR mciSendC ommand (MCIDE VICEID IDDevice ,UINT uMsg ,DW ORD fdwC ommand ,DW ORD dwParam );

具体参数的介绍请参阅MS DN [3]。212 用MCI 采集声音的步骤

首先设置适当的参数用MCI OPE N 命令打开声音设备准备录音,发送录音MCI REC ORD 命令信息开始录音,录音完成之后发送MCI S AVE FI LE 命令将声音信息写入W AV 文件,结束后发送MCI ST OP 命令关闭设备。

213 用MCI 播放声音的方法

与录音类似,先在MCI OPE N PARMS 中设置要播放的文件并发送MCI OPE N 命令打开声音设备,发送MCI P LAY 命令消息播放,结束后发送MCI ST OP 命令关闭设备。

3 使用低级音频函数WaveX

低层音频服务及重要的数据结构低级音频服务控制不同的音频设备,这些设备包括W ave ,M idi 和辅助音频设备[4]。低级音频服务包括如下内容:(1)查询音频设备;(2)打开和关闭设备驱动程序;(3)分配和准备音频数据块;(4)管理音频数据块;(5)应用M MTIME 结构;(6)处理错误。

311 用到的Windows 消息及数据结构

使用低级音频函数之所以能够对各个声音数据块操作,要归功于W indows 的消息映射[5],W indows 在采集、播放完一个数据块之后就会发送有关的消息。重要的消息有:M M WIM C LOSE ,M M WIM DAT A ,M M WIM

OPE N ,M M W OM C LOSE ,M M W OM DONE ,M M W OM OPE N ,WIM C LOSE ,WIM DONE ,WIN OPE N ,M OM C LOSE ,W OM DONE ,W OM OPE N ,这些消息都定

?651? 计算机应用研究2003年

义在Mmsystem.h 头文件中,具体意义请参阅MS DN 。

重要的数据结构如下:

●PC M 波形音频格式PC MW aveF ormat

波形数据格式W aveF ormat

●波形数据缓冲区格式W aveHDR

在声音采集与回放之前,首先要检查音频设备的能力,设置相应的音频参数,通常将音频参数设为22.05K H z 采样频率,8位立体声方式。试验表明:这样设置可使数据量适中,音效不错。在波形数据格式参数中,WF ormatT ag 用来设置W av 格式;nChannels 用来设置声道个数;nSam plesPerSec 用来设置采样频率;nAvgBytesPerSec 用来设置每秒所需字节数;nBlockAlign 用来设置每个采样点所需总字节数;w BitsPerSam ple 用来设置每个采样点所需Bit 数。

312 使用低层函数采集、播放声音的方法

使用低层的声音函数对声音进行采集、回放时,声音是存放在一个内存数据块中,当采集缓冲区中数据满时(得到M M WIM DAT A 消息),以及回放缓冲区中数据为空(得到M M W OM DONE 消息)时,用户可以采用相应的消息映射函数来处理相应的过程。

声音采集与回放的一般步骤是:首先检查设备的能力,看该设备所具有的声音处理能力;然后我们就可以使用waveInOpen 或waveOutOpen 函数打开录音或放音设备;打开相应的设备后,再为相应的录音或放音设备准备相应的数据结构,这是关键的一步,因为要使声卡正确采集播放,必须在程序中建立一种与之通信的标准,这种标准就是声音文件的格式,所以一定要保证数据缓冲区的格式符合W av 标准;

相应的数据结构准备好之后就可以使用waveInS tart 函数进行录音或waveOutWrite 函数将录好的声音数据播放;对录音以及放音缓冲区内容使用后,释放使用的内存单元;所有任务完成后,应该关闭相应的设备。

313 实时采集、播放的流程(图2,3)

下面是声音采集的程序:

M MRES U LT mmReturn =::waveInOpen (&m hRecord ,W AVE

M APPER ,//打开声音设备

&m W aveF ormatEx ,::G etCurrentThreadId (),0,CA LLBACK THRE AD );…//准备wave 数据结构

mmReturn =::waveInPrepareHeader (m hRecord ,lpHdr ,sizeof (W AVE 2HDR ));//为音频输入准备声音数据缓冲区

mmReturn =::waveInAddBu ffer (m hRecord ,lpHdr ,sizeof (W AVE 2HDR ));//将缓冲区加入接收队列

mmReturn =::waveInS tart (m hRecord );//开始从音频设备输入…//如果输入数据缓冲区满,系统会发出M M WI M DAT A 消息,在该消息的处理函数中可以对声音数据进行处理,包括播放、存储或者网络发送,处理完毕要清空数据缓冲区再加入输入队列直至结束。

如果要存储文件,先要写好W AV 文件头;然后在对消息M M WIM DAT A 的响应中依次写入数据:

::mm ioWrite (m hFile ,soundbu ffer ,cb Length );最后

要释放内存单元,关闭声音设备:

::waveInUnprepareHeader (m hRecord ,lpHdr ,sizeof (W AVEHDR ));I f (lpHdr )delete lpHdr ;W aveInClose (m hRecord );

声音的播放过程与采集非常相似,在此不再赘述。

4 使用DirectSound

这是三者中效率最高的的一种方式。DirectS ound [6]

是以组件方式提供的,由于M icrosoft 已经为它定制了Lib 文件(Dsound.lib ),这样在程序中只要包含头文件Dsound.h 就可以了,编程简化了很多。录音是通过接口:IDirectS oundCapture 和IDirectS oundCaptureBu ffer

;声音的播放是通过接口:IDirectS ound 和IDirectS oundBu ffer 。此外,还需要用到接口IDirectS oundN otify ,这是用来接收回放或者录音通知信息的。

411 DirectSound 的原理框图(图4,5)

从图中可以看出,通知是通过IDirectS oundN otify 来实现的,输入/输出缓冲可以设置为硬件缓冲或者软件缓冲,缓冲的大小也可以设置。以播放为例,程序中先分配一块缓冲,用要输出的数据填满缓冲;然后启动输出系统,就开始了不断的循环;声卡每放完一个缓冲就给程序发一个消息(实际和W aveX 一样使用事件驱动机制),程序就可以继续往该缓冲写数据。声音采集与播放的过程类似,程序分配一块缓冲,启动声音输入系统,开始循环,声卡写完一个缓冲就发送消息给程序;然后程序读出缓冲区数据并存储,声卡继续填写数据。412 用DirectSound 实现采集与播放

DirectS ound 的使用首先要创建IDirectS ound 对象,像普通的C OM 对象一样可以用C oCreateInstance 来创建,简单的方法是使用以下代码:

LPDIRECTS OUND lpds ;//LPDIRECTS OUND 等价于IDirectS ound *HRES U LT hr =DirectS oundCreate (NU LL ,&lpds ,NU LL );

创建了DireceS ound 之后就需要创建DirectS ound 2Bu ffer 对象,可以用:

IDirectS ound ::CreateS oundBu ffer (LPCDS BUFFERDESC lpcDS Bu fferDesc ,LP LPDIRECTS OUNDBUFFER lplpDirectS oundBu ffer ,Iunknown FAR 3pUnkOuter );

来创建。其中第一个参数很关键,LPC DS BUFFERDESC 结构中由dw Bu fferBytes 定义了缓冲区的大小,由lpw fxF ormat 规定了声音数据的结构。使用此方法创建IDirectS ound 2Bu ffer 对象就不需要再调用Initialize 了,因为在内部已经调用了该函数。

IDirectS ound 的其它重要接口还有Initialize ,SetC oop 2erativeLevel ,G etCaps ,C om pact 等。IDirectS oundN otify 对象

?

751?第1期荣治国等:实时音频采集、播放技术的研究

可通过IDirectS oundBu ffer 对象的QueryInterface 获得,具体调用如下:

LPDIRECTS OUNDNOTIFY lpDsN otify ;

HRES U LT hr =lpDsbSecondary 2>QueryInterface (IID IdirectS ound 2

N otify ,

(LPVOID 3)&lpDsN otify );

该对象只有一个函数,原型如下:

HRES U LT SetN otificationP ositions (DW ORD cP ositionN otifies ,LPCDS BPOSITIONNODIFY lpcP ositionN otifies );

此函数用来设置通知,第一个参数表示第二个参数的指针指向的结构数组的长度。该结构定义如下:

typedef struct{

DW ORD dwO ffset ;//表示此结构对应于哪个缓冲单元

HAND LE hEventN otify ;//表示该单元播放完成后触发的事件句柄}DS BPOSITIONNOTIFY,3LPDS BPOSITIONNOTIFY

通常使用了多少个缓冲就必须对应定义多大的数组,这样就可以保持连续播放而不停顿。

在程序中要开一个线程,使用W aitF orMultipleObjects 函数侦听该句柄数组的状态:

HAND LE hEvent[M AX];

F or (Int I =0;I

其中bpn 已经用CreateEvent 创建了事件句柄。当收到该通知后此线程就可以往声卡缓冲区里填数据了。hr 代表了哪个缓冲可以填数据,从而调用IDirectS oundBu ffer 的Lock 来锁定缓冲区:

HRES U LT Lock (DW ORD dwWriteCurs or ,DW ORD dwWriteBytes ,

LPVOID lplpvAudioPtr1,LPDW ORD lpdwAudioBytes1, LPVOID lplpvAudioPtr2,LPDW ORD lpdwAudioBytes2, DW ORD dwFlags );

这样Lock 函数以后就可以使用M em oryC opy 函数来把数据写入lplpvAudioPtr1和lplpvAudioPtr2,写完后调用Un Lock 就可以了。

以上就是用DirectS ound 来播放的全部逻辑,以此为蓝本就可以写出声音播放的程序了。同样,录音程序几乎是一样的,参照就可以写出。

5 三种模式的对比分析

511 从数据操作层次上来讲

M CI 为用户提供了高层应用的开发手段,并且提供了与设备无关(Device Independence )的应用程序接口。程

序设计人员在编写程序时,可以不考虑硬件设备而把它当作一个标准的M CI 设备即可。这里我们必须注意,当我们使用M CI 进行开发时,对于媒体的操作只能在文件级别上,不管是采集还是播放,都在内存中对应有一个完整的文件缓冲区,我们对整个缓冲文件进行操作,如音频所对应的W A V 文件、视频所对应的A VI 以及MIDI 所对应的MID 等,所以这种方式比较占用内存资源。

使用低级音频函数或者DirectS ound 时,应用程序与音频设备驱动程序直接通信的方式,它们在多媒体计算机中同样为音频硬件提供了与设备无关的接口。使用

低级音频函数或者DirectS ound 时,我们可以直接控制声

音实时的采集与回放,即我们并没有把声音形成相应的文件方式,而是把采集到的声音放到内存中,形成一种类似流的存储单元,我们可以对此内存中的声音数据进行编辑、传输等。512 从应用层次来看

应用情况也因为操作层次不同而不同。MCI 操作最为简单,无需考虑编程细节,虽然只能对整个声音文件进行操作,但在对声音控制细节要求不高的场合还是能很好的满足需求,比如在会议录音或者自动语音系统都可以应用。

低级音频函数能够具体的在内存中对各个声音数据块进行细节控制,比如可以通过检测声音的振幅强度进行声音采集的筛选,或者进行声音文件的剪切合并等,为声音文件的灵活操作提供很好的方法;因为它能够操作声音数据块,从而也为声音的实时传输提供了有效的途径。而如果要得到更好的效率,就非DirectS ound 莫属了,DirectS ound 能够最有效地利用硬件,而无需考虑具体的硬件功能,目前主要应用于游戏设计中。

6 结束语

在我们正在开发的视频会议系统中,会议文档管理部分要包括会议原声文件的记录,考虑到实现的简便性,在录音部分我们采用MCI 方式采集声音,简单方便。

会议系统中声音实时采集和传输采用W aveX 方法实现。为了保证连续录音、播放和传输音频数据,采用双套接字和双缓冲技术,建立两个套接字分别用于发送和接收声音数据,录音和播放分别开辟两个缓冲区。发送套接字与两个录音缓冲区配合使用,接收套接字与两个播放缓冲区配合使用。事实证明,采用低级音频函数可以做到实时性,而且能够根据需要对数据流进行灵活的控制。同样的方法也可以用于会议系统中视频的实时传输。参考文献:

[1]钟玉琢,等1多媒体计算机技术[M]1北京:清华大学出

版社;南宁:广西科学技术出版社,1993.13921421

[2]M icros oft Win32程序员参考大全(二)[M].欣力,李莉,陈维,等1北京:清华大学出版社,1994.38323961

[3]M icros oft MS DN April 2001and M icros oft Platform S DK[E B/O L ].2001205.

[4]李博轩1Visual C ++ 6.0多媒体开发指南[M].北京:清华大学出版社,20001712751

[5]陈坚,陈伟,等1Visual C ++网络高级编程[M]1北京:人民邮电出版社,2001110521081

[6]

清汉计算机工作室1Visual C ++6.0多媒体开发实例[M]1北京:机械工业出版社,2000.26622861

作者简介:

荣治国,硕士研究生,研究方向为计算机网络与多媒体通信;陈松乔,教授,博士生导师,研究方向为计算机网络。

?851? 计算机应用研究2003年

蓝牙车载音频流播放器的设计与实现

蓝牙车载音频流播放器的设计与实现 现在的车载信息娱乐系统中标准配置有带CD 播放功能的收音机、液晶屏,其他可选配置有GPS 和蓝牙免提装置等设备。随着蓝牙技术在音视频传输中的应用,一种可以增强用户娱乐体验的蓝牙音频流播放功能正逐步在车载信息娱 乐系统中得到应用。蓝牙音频流播放功能是指将蓝牙MP3 或蓝牙手机上的音 乐通过蓝牙以流媒体的方式传输到远端设备上进行解码后通过远端设备的功放 系统播放,同时远端设备还带有远程控制功能,使得用户可以在远端设备上操 作音乐,使其暂停、播放、快进快退或进行上下首切换。笔者设计实现了一款 蓝牙车载音频流播放器,该播放器和收音机及液晶屏之间通过CAN 总线进行 连接,控制操作在收音机上实现,液晶屏显示音乐的tagID3、播放时间、音轨、总音轨等信息,控制命令和播放信息都是通过CAN 总线进行传输。从用户的 使用角度来说,该蓝牙音频流播放器是和收音机、液晶屏组成一套系统的。1 系统结构系统结构如图1 所示。音频流播放器、液晶屏和收音机组成一个车载娱乐系统的CAN 网络,控制命令及状态信息均通过CAN 总线传输,其中收 音机带有功放,直接驱动汽车喇叭,并统一管理包括FM、CD 和音频流播放器的音频输出在内的音源。音频流播放器和蓝牙手机通过蓝牙进行交互,采用 A2DP(Advanced Audio Distribution Profile)完成音乐音频流数据及相关格式信息的传输,通过AVRCP(Audio/Video Remote Control Profile)完成对音乐的远程播放控制及播放信息及状态的读取。在A2DP 中引入了2 个终端名:SRC(Source) 和SNK(Sink)。在这里,数字音频流的数据发送端蓝牙手机称为SRC,数字音 频流的接收端蓝牙音频流播放器称为SNK。 2 硬件设计蓝牙音频流播放器的硬件设计中,包括CAN 通讯、蓝牙子系统和音频系统 3 个部分,其中蓝牙子系统和音频系统部分采用CSR 的蓝牙单芯片

软件技术开发合同协议书范本详细版

编号: _____________ 软件技术开发合同 甲方: _______________________ 乙方: _______________________ 签订日期: ___ 年____ 月_____ 日 第1 页共11 页

说明: 一、本合同为中华人民共和国科学技术部印制的技术开发(委托)合同示范文本,各技术合同登记机构可推介技术合同当事人参照使用。 二、本合同书适用于一方当事人委托另一方当事人进行新技术、新产品、新工艺、新材料或者新品种及其系统的研究开发所订立的技术开发合同。 三、签约一方为多个当事人的,可按各自在合同关系中的作用等,在“委托方”、“受托方” 项下(增页)分别排列为共同委托人或共同受托人。 四、本合同书未尽事项,可由当事人附页另行约定,并可作为本合同的组成部分。 五、当事人使用本合同书时约定无需填写的条款,应在该条款处注明“无”等字样。 委托方(甲方):_____________________________________________ 住所地:_______________________________________________________ 法定代表人:___________________________________________________ 项目联系人:____________________________________________________ 联系方式:_____________________________________________________ 通讯地址:______________________________________________________ 电话:____________________ 传真:_____________________________ 电子信箱:______________________________________________________ 受托方(乙方):_____________________________________________ 住所地:_______________________________________________________ 法定代表人:___________________________________________________ 项目联系人:____________________________________________________ 联系方式:_____________________________________________________ 通讯地址:______________________________________________________ 电话:_______________________ 传真: __________________________ 电子信箱:______________________________________________________

音频信号分析与处理

实验三音频信号的分析与处理1 一、实验目的 1.掌握音频信号的采集以及运用Matlab软件实现音频回放的方 法; 2.掌握运用Matlab实现对音频信号的时域、频谱分析方法; 3.掌握运用Matlab设计RC滤波系统的方法; 4.掌握运用Matlab实现对加干扰后的音频信号的进行滤波处理 的方法; 5.锻炼学生运用所学知识独立分析问题解决问题的能力,培养学 生创新能力。 二、实验性质 设计性实验 三、实验任务 1.音频信号的采集 音频信号的采集可以通过Windows自带的录音机也可以用专用的录制软件录制一段音频信号(尽量保证无噪音、干扰小),也可以直接复制一段音频信号,但必须保证音频信号保存为.wav的文件。 2.音频信号的时域、频域分析 运用Matlab软件实现对音频信号的打开操作、时域分析和频域分析,并画出相应的图形(要求图形有标题),并打印在实验报告中(注意:把打印好的图形剪裁下来,粘贴到实验报告纸上)。 3.引入干扰信号 在原有的音频信号上,叠加一个频率为100KHz的正弦波干扰信号(幅度自定,可根据音频信号的情况而定)。 4.滤波系统的设计 运用Matlab实现RC滤波系统,要求加入干扰的音频信号经过RC滤波系统后,能够滤除100KHz的干扰信号,同时保留原有的音频信号,要求绘制出RC滤波系统的冲激响应波形,并分析其频谱。

% 音频信号分析与处理 %% 打开和读取音频文件 clear all; % 清除工作区缓存 [y, Fs] = audioread('jyly.wav'); % 读取音频文件 VoiceWav = y(300000 : 400000, 1); % 截取音频中的一段波形 clear y; % 清除缓存 hAudio = audioplayer(VoiceWav, Fs); % 将音频文件载入audioplayer SampleRate = get(hAudio, 'SampleRate'); % 获取音频文件的采样率KHz T = 1/SampleRate; % 计算每个点的时间,即采样周期SampLen = size(VoiceWav,1); % 单声道采样长度 %% 绘制时域分析图 hFig1 = figure('Units', 'normalized', 'Position', [0 0.05 0.49 0.85]); t = T: T: (SampLen* T); subplot(2, 1, 1); % 绘制音频波形 plot(t, VoiceWav); % 绘制波形 title('音频时域波形图'); axis([0, 2.3, -0.5, 0.5]); xlabel('时间(s)'); ylabel('幅值(V)'); % 显示标题 %% 傅里叶变换 subplot(2, 1, 2); % 绘制波形 myfft(VoiceWav, SampleRate, 'plot'); % 傅里叶变换 title('单声道频谱振幅'); % 显示标题 xlabel('Frequency (Hz)'); ylabel('|Y(f)|'); play(hAudio); % 播放添加噪声前的声音 pause(3); %% 引入100KHz的噪声干扰 t = (0: SampLen-1)* T; noise = sin(2 * pi * 10000 * t); % 噪声频率100Khz,幅值-1V到+1V hFig2 = figure('Units', 'normalized', 'Position', [0.5 0.05 0.5 0.85]); subplot(2, 1, 1); % 绘制波形 plot(t(1: 1000), noise(1: 1000)); title('100KHz噪声信号'); % 显示标题 noiseVoice = VoiceWav+ noise'; % 将噪声加到声音里面 hAudio = audioplayer(noiseVoice, Fs); % 将音频文件载入audioplayer subplot(2, 1, 2); % 绘制波形 [fftNoiseVoice, f] = myfft(noiseVoice, SampleRate, 'plot'); title('音乐和噪声频谱'); % 显示标题 play(hAudio); % 播放添加噪声后的声音 pause(3);

vlc做流媒体播放器(里面有好多知识点哦亲)

vlc的应用之一:在命令行下的使用 2008-11-28 13:45:34 标签:command休闲line职场vlc 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.360docs.net/doc/2216807158.html,/539865/115910 如果编译得到没有界面的vlc,双击运行后就没法手动选打文件或网络了。在这介绍几个vlc的命令行命令。 1. vlc帮助 vlc --help or vlc --help --advanced 2. vlc的debug log vlc -vv --extraintf=logger 运行的log将会保存在vlc-log.txt中。 3. vlc打开文件 vlc -vv --extraintf=logger d:/01.avi 4. 作为服务器通过rtp往客户端发送ts流 vlc -vvv --extraintf=logger d:/01.avi :sout=#duplicate{dst=rtp{dst=localhost,m ux=ts,port=1234}} 5. 作为客户端接收rtp流 vlc -vv --extraintf=logger rtp://@:1234

vlc的应用之二:vlc的ActiveX及cab 2008-11-28 15:38:01 标签:vlc休闲cab职场ActiveX 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。https://www.360docs.net/doc/2216807158.html,/539865/115943 2009-05-14补充:8. Activex的卸载;9. 让vlc自动安装Activex ;10. 关于vlc的Activex的说明。 vlc自带了ActiveX控件--axvlc.dll,在编译完vlc之后的activex文件夹下。ActiveX是个好东西,axvlc.dll可以随意放到任何位置,成功注册之后可以方便的应用在程序和网页之中。可以参考activex文件夹下的test.html和README.TXT。ActiveX控件的接口有第一版和第二版,第一版简单,功能少,已经不再维护建议用第二版本,功能多一点。(参考的[1]) vlc-0.8.6i和vlc-0.9.4的ActiveX注册方法略有不同。 做ActiveX的网页测试之前需要把Internet选项-->安全-->本地Intranet 的安全级别调到最低。Jeremiah的网页测试环境是IE7,其他浏览器未进行测试。 1. vlc-0.8.6i的ActiveX注册 在E:下新建文件夹vlc-0.8.6iActiveX,拷贝vlc-0.8.6i目录下的plugins,libvlc.dll,activex/axvlc.dll到vlc-0.8.6iActiveX/dlls目录下,拷贝activex/test.html到vlc-0.8.6iActiveX下。新建文本文件install.bat 内容如下: regsvr32 dlls\axvlc.dll 双击install.bat后会提示“dlls\axvlc.dll中的DllRegisterServer成功”。然后用打开test.html,文本框输入MRL就可以播放了。

软件技术开发协议模板参考

协议编号: 技术开发(委托)与技术服务协议 项目名称: 委托方(甲方): 受托方(乙方): 签订时间: 签订地点:

填写说明 一、本协议为中华人民共和国科学部印制的技术开发(委托)协议示范文本,各技术协议登记机构可推介技术协议当事人参照使用. 二、本协议书适用于一方当事人委托另一方当事人进行新技术、新产品、新工艺、新材料或者新品种及其系统的研究开发所订立的技术开发协议. 三、签约一方为多个当事人的,可按各自在协议关系中的作用等,在“委托方”、“受托方”项下(增页)分别排列为共同委托人或共同受托人. 四、本协议书未尽事项,可由当事人附页另行约定,并可作为本协议的组成部分. 五、当事人使用本协议书时约定无需填写的条款,应在该条款处注明“无“等字样.

技术开发(委托)与技术服务协议 委托方(甲方): 住所地: 法定代表人: 项目联系人: 联系方式:电话 通讯地址: 电话:传真:电子信箱: 受托方(乙方): 住所地: 法定代表人: 项目联系人: 联系方式: 通讯地址: 电话:传真: 电子信箱:

本协议甲方委托乙方研究开发行车无忧项目线上技术平台及后续为该线上平台提供技术服务包括软件持续开发升级、技术改造、平台运营维护等等,并支付研究开发、技术服务等经费和报酬,乙方接受委托并进行此项研究开发工作.双方经过平等协商,在真实、充分地表达各自意愿的基础上,根据《中华人民共和国协议法》的规定,达成如下协议,并由双方共同恪守. 第一条本协议研究开发项目的要求如下: 1.技术目标: . 第二条乙方应在本协议生效后日内向甲方提交研究开发计划.研究开发计划应包括以下主要内容: 1.; 2.; 3.; 第三条乙方应按下列进度完成研究开发工作: 1.; 2.; 3.; 4. . 第四条甲方应向乙方提供的技术资料及协作事项如下: 1.技术资料清单: .

基于MATLAB的语音信号采集与处理

工程设计论文 题目:基于MATLAB的语音信号采集与处理 姓名: 班级: 学号: 指导老师:

一.选题背景 1、实践意义: 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效地提取并表示语音信号所携带的信息。所以理解并掌握语音信号的时域和频域特性是非常重要的。 通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。 语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话容,进行语音增强等. 语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,

是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值. 数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、度快等优点。 数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能

软件技术服务合同模板

软件技术服务合同模板 技术服务模板合同软件技术服务合同模板软件技术服务合同 篇一:软件技术服务合同 软件技术服务合同 甲方: 乙方: 甲乙双方本着互相信任、真诚合作的原则,经双方友好协商,就乙方为甲方提供技术支持服务达成一致意见,特签订本合同。 一、合同适用说明 本合同适用于首次购买乙方软件产品及需要乙方技术服务的用户。甲乙双方 签订本合同,表明甲方接受乙方所提供的标准服务;否则,视甲方主动放弃乙方所提供的服务。 二、服务内容 2.1 乙方提供的服务内容: 产品标准培训:乙方负责承担甲方所产品的标准培训。 热线支持:指乙服务人员通过电话向用户提供技术问题解答的过程。现场维护:指乙方派遣技术人员到用户现场处 1 解决问题的过程。功能改进:指根据甲方要求对软件功能进行和改动。 2.2 乙方的服务承诺: 乙方接到甲方通过电话,信函,传真,电子邮件等方式提出关于软件的服务请求后,在当日内给予响应并提供服务。 乙方提供给甲方的服务,必须按照合同规定的服务内容进行。

三、甲方责任 1. 甲方应确保有专人对软件的使用和管理负责。 2. 甲方应建立相关制度,以确保软件运行环境(包括计算机,打印机及相关硬件设备)的安全,为软件正常运行提供保障。 3. 甲方定期做好系统数据备份,并对备份数据进行妥善保管。 4. 甲方在应用过程中发现软件出现异常,应及时与乙方取得联系,并记录当前故障现象,便于乙方作出诊断。 5. 甲方在乙方服务人员服务完成后,配合检查软件系统运行是否正常。 四、收费办法和合同期限 年服务费为, (大写人民币)。 在甲方支付全款后个工作日,乙方提供等额增值税专用发票。 2 合同有效期:自年月日至2 年月日止,期满合同自动中止。 合同合同满后,双方协商,甲方可要求乙方继续提供软件运行维护服务,但双方必须重新签署新的服务合同。 五、争议处理 甲乙双方如对协议条款规定的理解有异议,或者对与有关的事项发生争议,双方应本着友好合作的精神进行协商。 协商不能解决的,依照《中华人民共和国合同法》,任何一方可向原告方所在地的人民法院起诉。 六、其他 本合同未尽事宜,由甲乙双方协商后产生书面文件,作为本合同的补充条款,具备与本合同同等法律效力。 对本合同内容的任何修改和变更需用书面形式,并经双方签字确认后生效。

实验九 音频信号采集及处理

音频信号采集及处理程序代码及实验结果图: [voice,fs]=audioread('notify.wav');%声音读取 sound(voice,fs); %声音回放 n=length(voice);%计算长度 voice1=fft(voice,n); %快速傅里叶变换 figure(1);subplot(2,1,1);plot(voice); %绘出时域波 xlabel('t');ylabel('amp');%坐标名称 title('初始音频信号时域波形');grid on; subplot(2,1,2);plot(abs(fftshift(voice1))); %绘出原始音频信号频谱 title('初始音频信号频域波形'); xlabel('f');ylabel('amp');grid on; t=0:1/fs:(n-1)/fs; noise=0.05*sin(2*pi*100000*t');%100kHz正弦波噪声 s=voice+noise;%加噪后的音频信号 pause;sound(s,fs); %播放加噪的语音 n=length(s); S=fft(s,n);%计算频谱 figure(2);subplot(2,1,1);plot(s);%画出加噪之后的音频信号时域波 形 title('加噪声后的音频信号时域波形'); xlabel('t');ylabel('amp');grid on; subplot(2,1,2);plot(abs(fftshift(S)));%零频移到频谱中心后,绘制加噪 之后的音频信号频谱 xlabel('f');ylabel('amp'); title('加噪声后的音频信号频域波形');grid on; pause; rp=2; rs=80; Ft=8000;Fp=1000;Fs=1300; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; %求出待设计的模拟滤波器的边界频率 [n,wn]=buttord(wp,ws,rp,rs,'s'); %低通滤波器的阶数和截止频率 [b,a]=butter(n,wn,'s'); %S域频率响应的参数即:滤波器的传输函数 [bz,az]=bilinear(b,a,0.5); %利用双线性变换实现频率响应S域到Z域的变换 [h,w]=freqz(bz,az); figure(3);plot(w*fs/(2*pi),abs(h));%绘制IIR低通滤波器特性曲线 title('IIR低通滤波器特性曲线');grid on; z=filter(bz,az,s); %滤波 pause;sound(z,fs); %回放滤波后的信号 Z=fft(z); %滤波后的信号频谱 figure(4);subplot(2,2,2);plot(z);%绘制低通滤波后的音频信号时域

流媒体常识工具格式转换播放软件使用介绍

流媒体常识工具格式转换播放软件使用介绍流媒体常识工具格式转换播放软件使用介绍目录: 1. 流媒体常识工具格式转换播放软件使用介绍 2.常见视频格式之间如何转换 3.将MTV转成mp3 4. 将MP3转刻成CDA光盘 5.将MIDI转为WAVE 6.制作RM音乐 7.如何分割asf文件 8.视频编码/解码器问答 9.修复下载后的电影 10.分割合并MP3歌曲 11.从视频文件中提取声音 12.光盘刻录 13.巧用摄像头制作VCD 14.视频同步字幕制作 15.视频编辑常见问题 16.流媒体编辑魔术师AsF Tools 17.最简单的VCD制作 流媒体常识工具格式转换播放软件使用介绍 Q.为什么有的电影没有图像,只有声音?

在观看电影的时候,可能会遇到只有声音,没有图像的现象,这时你需要看看自己是否安装了DIVX插件(看 MPEG4的工具),没有安装一定会出现上述现象,而如果你安装了或者观看的不是MPEG4的电影,那从锌赡?是网速的问题,可能是你的网速慢或者是在线观看的人太多了,服务器过载的缘故,都会引起上述现象本站上网工具包提供DIVX插件的下载 Q.rm文件如何解决国语和粤语的双声道问题? 一些文件如rm asf有的时候国语和奥语是混合在一些的,而realplaywindows mediaplay一般都是不能分开声道的其实你可以采用如下简单的方法解决:双击任务栏上的喇叭图标,然后将Wave Output向右播到头即可解决但这并不是100%全能解决的,一些电影文件是无法解决这个问题的,只能认命了目前realfox软件也可以解决双声道问题,但它采用的方法也是和前面所说的一样,因此也不是100%能解决问题了 Q.ram文件是什么,如果才能找到真实的下载地址? ram一般都很小(几十个字节),它是一个导航文件下载后用记事本打开,然后你就会看到真实的下载地址了 Q:encoder不能设置用户权限访问 A:因为real没有在encoder设置用户访问权限!! Q:跑RealServer的服务器组播时的CPU,内存需求情况? A:RealServer中的组播是将一个现场直播流同时传递给多个客户端,而 无需为每一客户的连结发送一个单独的数据流,客户端只需连结到这个 数据流,而不是连结到RealServer服务器,从而降低带宽的使用为了 利用组播技术所带来的优越,在RealServer与Realplayer客户端之间的 所有设备必须是支持组播技术的,包括之间的路由器交换机和其他 的网络设备! 使用组播能够减少带宽的使用,用一般满足100个600k 连接的机器配置就行了! A:音轨的问题可以这样解决,下载smart ripper ,这个工具可以把DVD的光盘的vob文件和它的音轨合成一个新的 VOB文件,这样子视频和音轨就能在同一个文件里,随便你用FlaskMPEG 或者其他工具转化了 A:flash在smil语言中插入的时候用realplay播放是没有声音用realplay plus播放没有问题为什么?给real公司发过信也没有明确的回答!!! Q:*.dat转化为*.rm格式的软件?

应用软件技术服务合同协议书范本

编号: 应用软件技术服务合同 甲方:___________________________ 乙方:___________________________ 签订日期:_____ 年____ 月_____ 日 甲方:____________________ 法定代表人或负责人: ______

乙方:____________________ 法定代表人或负责人: ______ 为了保证纳税人网上电子报税和网上认证的正常使用,处理计算机操作过程中遇到的问题,甲 方委托乙方为税务相关应用软件的技术服务方,为此甲乙双方签定技术服务合同如下: 第一条项目名称 网上电子报税、网上认证运行维护。 第二条具体内容 纳税人的网上电子报税、网上认证、个人所得税软盘申报、四小票采集、出口退税申报、出口退税网上预申报、企业所得税汇算清缴的软盘申报等应用项目。 第三条服务对象 甲方指定乙方承担的税务(分)局及其管辖范围内的纳税人。具体包括如下税务(分)局: 1. ____________________________________________________________________________ 2. ____________________________________________________________________________ 3. ____________________________________________________________________________ 4. ____________________________________________________________________________ 第四条甲方的主要义务 1. 甲方为乙方指定所需委托服务的相关税务(分)局的纳税人。 2. 甲方制定服务公司考核办法;参与并组织税务(分)局、纳税人实施对服务公司的考核; 组织服务公司的推介会。 3. 甲方按合同定期支付乙方服务费

对语音信号进行分析及处理资料

一、设计目的 1.进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使自身对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解; 2.增强应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问题的能力; 3.培养自我学习的能力和对相关课程的兴趣; 二、设计过程 1、语音信号的采集 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。 采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实 采样定理又称奈奎斯特定理,在进行模拟/数字信号的转换过程中,当采样频率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。 利用Windows下的录音机,录制了一段发出的声音,内容是“数字信号”,时间在3 s内。接着在D盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。 [x1,fs,bits]=wavread('E:\数字信号.wav'); %读取语音信号的数据,赋给变量x1,返回频率fs 44100Hz,比特率为16 。 2 、语音信号的频谱分析 (1)首先画出语音信号的时域波形; 程序段: x=x1(60001:1:120000); %截取原始信号60000个采样点

plot(x) %做截取原始信号的时域图形 title('原始语音采样后时域信号'); xlabel('时间轴 n'); ylabel('幅值 A'); (2)然后用函数fft 对语音号进行快速傅里叶变换,得到信号的频谱特性; y1=fft(x,6000); %对信号做N=6000点FFT 变换 figure(2) subplot(2,1,1),plot(k,abs(y1)); title('|X(k)|'); ylabel('幅度谱'); subplot(2,1,2),plot(k,angle(y1)); title('arg|X(k)|'); ylabel('相位谱'); (3)产生高斯白噪声,并且对噪声进行一定的衰减,然后把噪声加到信号中,再次对信号进行频谱特性分析,从而加深对频谱特性的理解; d=randn(1,60000); %产生高斯白噪声 d=d/100; %对噪声进行衰减 x2=x+d; %加入高斯白噪声 3、设计数字滤波器 (1)IIR 低通滤波器性能指标通带截止频Hz f c 1000=,阻带截止频率 Hz f st 1200=,通带最大衰减dB 11=δ,阻带最小衰减dB 1002=δ。 (2)FIR 低通滤波器性能指标通带截止频率Hz f c 1000=,阻带截止频率 Hz f st 1200=, 通带衰减1δ≤1dB ,阻带衰减 2δ≥ 100dB 。 (3)IIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 30=,通带最大衰减dB A P 1=。 (4)(4)FIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 50=,通带最大衰减dB A P 1=。 (5)用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab 中,FIR 滤波器利用函数fftfilt 对信号进行滤波,IIR 滤波器利用函数filter 对信号进行滤波。比较滤波前后语音信号的波形及频谱,在一个窗口同时画出滤波前后

流媒体MP3播放器教程

基于libmad 的简单MP3流媒体播放器的实现.介绍 本文在Fedora 5 Linux 下实现了一个基于libmad 的mp3 流媒体播放器。此流媒体播放器可以播放基于HTTP 1.1 协议传输的MP3 流媒体数据。 基本原理是:从HTTP 服务器获得MP3 媒体信息,然后通过网络传输把MP3 数据以数据流的形式接收到MP3 流媒体播放器客户端,由客户端通过libmad 解码MP3 数据流,得到PCM 音频数据,写入音频设备,播放音乐。本文的流媒体播放器只是实现了必要的简单功能,没有考虑太多情况。比如,没有考虑实时播放控制,这样的话就不能随意选取播放点进行播放。 本文的MP3 流媒体播放器创建两个线程,使用两个缓冲区保存MP3 数据,可以一边下载数据,一边播放音乐。编译运行此MP3 流媒体播放器需要安装libmad (https://www.360docs.net/doc/2216807158.html,/prodUCts/mad/) 以及ALSA(Advanced Linux Sound Architecture) (https://www.360docs.net/doc/2216807158.html,)相关的软件。ALSA包括4部分,分别是sound driver, sound library , sound utilities 以及tools。至少应该安装sound driver, sound library 。编译程序时连接库的选项是:-lmad -lasound -lpthread。 本文的MP3 流媒体播放器使用双缓冲区,一个是数据接收缓冲区,另一个是数据解码缓冲区。主程序结构如下图所示,图中的蓝色线表示数据流向。

图1:MP3 流媒体播放器主程序结构图 2.libmad简介 MAD (libmad)是一个开源的高精度MPEG 音频解码库,支持MPEG-1(Layer I, Layer II 和LayerIII(也就是MP3)。LIBMAD 提供24-bit 的PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用libmad 提供的一系列API,就可以非常简单地实现MP3 数据解码工作。在libmad 的源代码文件目录下的mad.h 文件中,可以看到绝大部分该库的数据结构和API 等。 本文用到的libmad 中的主要数据结构有:struct mad_stream, struct mad_synth, struct mad_frame。它们的定义如下: 清单1:libmad 中的主要数据结构 struct mad_stream { unsigned char const *buffer; /* input bitstream buffer */ unsigned char const *bufend; /* end of buffer */

软件技术服务合同模板.doc

合同编号: 软件技术服务合同模板 甲方: 乙方: 时间:

软件技术服务合同模板 甲方:_________ 乙方(服务方):_________ 甲乙双方本着互相信任、真诚合作的原则,经双方友好协商,就乙方为甲方提供技术支持服务达成一致意见,特签订本合同。 一、合同适用说明 本合同适用于首次购买乙方软件产品及需要乙方技术服务的用户。甲乙双方签订本合同,表明甲方接受乙方所提供的标准服务;否则,视甲方主动放弃乙方所提供的服务。 二、服务内容 乙方提供的服务内容: 产品标准培训:乙方负责承担甲方所产品的标准培训。 热线支持:指乙服务人员通过电话向用户提供技术问题解答的过程。现场维护:指乙方派遣技术人员到用户现场处解决问题的过程。 功能改进:指根据甲方要求对软件功能进行和改动。 乙方的服务承诺: 乙方接到甲方通过电话,信函,传真,电子邮件等方式提出关于软件的服务请求后,在当日内给予响应并提供服务。 乙方提供给甲方的服务,必须按照合同规定的服务内容进行。 三、甲方责任 甲方应确保有专人对软件的使用和管理负责。 甲方应建立相关制度,以确保软件运行环境(包括计算机,打印机及

相关硬件设备)的安全,为软件正常运行提供保障。 甲方定期做好系统数据备份,并对备份数据进行妥善保管。 甲方在应用过程中发现软件出现异常,应及时与乙方取得联系,并记录当前故障现象,便于乙方作出诊断。 甲方在乙方服务人员服务完成后,配合检查软件系统运行是否正常。 四、收费办法和合同期限 年服务费为(软件价值的15%):_________(大写)。 合同有效期为一年,自_________年_________月_________日至_________年_________月_________日止,期满合同自动中止。 合同合同满后,双方协商,甲方可要求乙方继续提供软件运行维护服务,但双方必须重新签署新的服务合同。 五、争议处理 甲乙双方如对协议条款规定的理解有异议,或者对与有关的事项发生争议,双方应本着友好合作的精神进行协商。 协商不能解决的,依照法律规定,任何一方可向乙所在地的人民法院起诉。 六、其他 本合同未尽事宜,由甲乙双方协商后产生书面文件,作为本合同的补充条款,具备与本合同同等法律效力。 对本合同内容的任何修改和变更需用书面形式,并经双方签字确认后生效。 本合同为双方唯一的正式协议,其他任何方案,口头说明及与本项目

数字信处理实验内容音频信分析与处理

数字信处理实验内容音频信分析与处理 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

数字信号处理实验内容—— 音频信号采集、分析及处理 一、实验目的 1.以音频信号为例,熟悉模拟信号数字处理过程,进一步理解数字信 号处理概念。 2.掌握运用Matlab实现对音频信号的时频分析方法; 3.初步掌握数字音频信号合成的方法。 4.掌握运用Matlab设计IIR和FIR滤波系统的方法; 5.掌握运用Matlab实现对加噪的音频信号进行去噪滤波的方法。锻 炼学生运用所学知识独立分析问题解决问题的能力,培养学生创新能力。 二、实验性质 综合分析、设计性实验 三、实验任务 实验内容一:windows系统中的“ding”音频信号的采集、分析、合成

1.音频信号的采集 编写Matlab程序,采集windows系统中的“ding”声,得到*.wav 音频文件,而后实现音频信号回放。 2.音频信号的频谱分析 运用Matlab软件实现对音频信号的时域分析和频域分析,并打印相应的图形,完成在实验报告中。 注意:此音频信号的频谱包含两条主要谱线,在进行频谱分析时,注意频谱的完整性,利用MATLAB实现对两条主要谱线的定位并计算谱线所对应的模拟频率。 3.音频信号的分解和合成 运用Matlab软件实现音频信号的分解与合成,将音频信号的频谱中两部分频谱成分进行分解,分别绘制出分解后的两个信号的频谱图;然后将分解后的两个信号再合成为一个新的信号,将合成后的新信号的时域、频域图与原来的信号时域、频域图相比较,绘制出对比效果图。4.音频信号的回放 运用Matlab软件实现音频信号的回放,将合成后的新信号和原音频信号分别进行回放,对比两个信号的声音效果。

软件技术协议合同

****软件 技术协议书 项目名称:**项目 项目编号: 合同名称:

**软件 技术协议书 编号:0000 **项目部(以下简称甲方)与**有限公司(以下简称乙方)就**项目(以下简称本项目)的软件供货及技术支持经双方协商后,达成如下协议。 1.协议内容 1)乙方为本项目提供**软件和相关技术支持。 2)乙方确保本项目系统的整体方案、硬件配置、软件功能架构的完整 性、可行性、合理性和先进性。 平台软件清单 乙方保证所提供平台软件的性能指标满足该产品技术手册中所列性能指标、满足本项目监控系统的实施要求。 3.甲方责任及义务 1)负责本项目的整体实施与协调。 2)负责为乙方在现场工作与技术支持提供便利条件。 3)负责为乙方提供工作所需的资料。

4.乙方责任及义务 1)负责软件平台的供货。 2)自合同签订之日起至系统成功上线,根据甲方项目实施要求派遣资 深工程技术人员到现场进行详细设计、编程、调试等相关技术支 持。指导技术人员按时、高标准、高水平完成系统的设计和实施。 3)与甲方共同完成本项目的详细设计, 保证设计的完整性和合理性, 并对平台部分的设计的完整性和合理性负责。 4)负责支持甲方实现系统的所有功能。 5)负责对甲方开发、维护和运行的工程技术人员进行免费培训,使受 培训人员能维护和操作系统。 6)根据上述工作内容和项目阶段需求乙方及时派遣人员,乙方人员的 食宿、交通、安全自负。 5.乙方资料交付 1)资料内容 乙方应免费提供产品的使用手册。 2)语言 提供的手册和资料为中文。 6.技术支持及培训计划 1)技术支持 服务支持:乙方提供7*24小时全天候响应服务。 现场服务:在操作失效或其他紧急情况下,且远程无法解决问题,甲方用户请求紧急援助,乙方工程师须在24小时内到现场服务。

《基于Android平台的音视频流媒体播放器》

目录 1. 绪论 (2) 1.1. 提出问题 (2) 1.2. 研究现状 (2) 1.3. 研究思路与方法 (4) 2. Android操作系统整体结构分析 (6) 2.1. Android系统简介 (6) 2.2. Android整体结构 (7) 2.2.1. Android 架构 (7) 2.2.2. 特征 (9) 2.3. Android 应用组件 (9) 2.3.1. 活动(Activity) (10) 2.3.2. 服务(Services) (11) 2.3.3. 广播接收者(Broadcast receivers) (12) 2.3.4. 内容提供者(Content providers) (12) 2.4. Android NDK工具 (13) 3. FFmpeg流媒体平台介绍与研究 (14) 3.1. FFmpeg简介 (14) 3.2. FFmpeg 的编译与运行 (14) 4. 流媒体播放器应用分析 (16) 4.1. 系统功能需求分析 (16) 4.2. 系统整体结构需求分析 (17) 4.3. 系统业务流程分析 (18) 4.3.1. 媒体播放模块业务流程 (18) 4.3.2. 媒体文件管理模块业务流程 (19) 4.3.3. 系统设置模块业务流程 (21) 5. 流媒体播放器应用设计 (22) 5.1. 系统设计模型 (22) 5.2. 系统UI设计 (23) 5.2.1. 媒体播放模块设计 (23)

5.2.2. 媒体文件管理模块设计 (25) 5.2.3. 系统设置模块设计 (29) 5.3. 系统数据库设计 (31) 5.3.1. SQLite简介 (31) 5.3.2. 播放器库表说明 (31) 6. Android平台的流媒体播放器应用实现 (33) 6.1. Android 应用程序开发 (33) 6.1.1. Android 开发环境 (33) 6.1.2. Android 应用开发特点 (34) 6.2. FFmpeg移植 (36) 6.3. FFmpeg音视频解码 (39) 6.4. 流媒体播放功能的开发与实现 (41) 总结 (46) 致谢 ..................................................... 错误!未定义书签。参考文献 .. (47)

相关文档
最新文档