PC-PC的IP电话实验

Similar documents
标题

08信息技术部.doc

378高雄市都市計畫說明書


<4D F736F F D20D1A7C9FACAD6B2E1B8C4D7EED6D5A3A8B4F8B1EDB8F1BCD3D2B3C2EBB0E6A3A9372E3239>

桂林市劳动和社会保障局关于

第三章 維修及管理

Microsoft Word 年度选拔硕博连读研究生的通知.doc


Chapter #

中国证券监督管理委员会公告

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

关于建立境内违法互联网站黑名单管理制度的通知

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

untitled

TD

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

技 术 文 件

黔卫计发〔2016〕28号(人事处)-两单位-网络版

第 四 节 教 室 管 理 27 第 五 节 实 验 室 管 理 27 第 六 节 考 试 管 理 28 第 七 节 公 寓 管 理 30 第 八 节 网 络 管 理 34 第 九 节 图 书 馆 管 理 36 第 五 章 学 生 组 织 41 第 一 节 学 生 会 41 第 二 节 班 委 团

90 1 2/3 2/

计算机网络实验说明


根 据 自 治 区 教 育 厅 财 政 厅 关 于 认 真 做 好 2013 年 国 培 计 划 实 施 工 作 的 通 知 ( 宁 教 师 号 ) 的 具 体 要 求, 由 华 东 师 范 大 学 开 放 教 育 学 院 承 担 的 2013 年 国 培 计 划 宁 夏 农 村

<4D F736F F D B77CC4B3ACF6BFFD2DB0D3B77EC2B2B3F8C2BEBAD82E646F63>

ebook

word 2

第壹拾篇

《人员招聘与任用》

联 系 单 位 : 国 家 医 学 考 试 中 心 考 务 与 培 训 处 联 系 人 : 柳 雯 : 温 吉 元 : 传 真 : ( 信 息 公 开 形 式 : 依 申 请 公 开 ) 国 家 医 学 考 试 中 心 2016

计算机网络与经济(一).doc


11.doc

Unify专业调度解决方案 (小文件)

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

成人聊天qq号_欢迎加入性爱聊天qq群 成人聊天qq号_live成人聊天网

一、单项共29题,每小题2分,共58分.

一 专 业 名 称 专 业 名 称 : 会 计 二 入 学 要 求 与 基 本 学 制 入 学 要 求 : 初 中 毕 业 生 基 本 学 制 : 三 年 ; 其 中 前 二 年 为 在 校 学 习 时 间, 最 后 一 年 为 企 业 实 习 时 间 层 次 : 中 职 三 培 养 目 标 本 专

目 录

你的第一本 Photoshop 书 图 1.3 图 1.4 RGB 图 1.5 图 三原色光的概念 R Red G Green B Blue RGB RGB R B 3 1 RGB RGB 256 0~ RGB

英语专业(中英文)

中华人民共和国学位条例

证券期货市场之主要诚信规范

标题

98上課程計畫最終.doc

一、

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

1 目 录 建 达 北 京 爱 丽 舍 花 园 地 产 基 金... 0 特 别 提 示... 2 第 一 章. 基 金 介 绍... 3 一 基 金 概 要... 3 二 产 品 优 势... 4 三 风 控 措 施... 6 四 交 易 结 构... 6 第 二 章. 投 资 项 目 介 绍..

?????????????(2008~2020?)

第 三 个 就 是 产 业 链 不 健 全, 这 个 产 业 我 看 到 过 好 的 游 戏,H5 的, 但 是 没 有 职 业 的 发 行 商 有 职 业 的 发 行 商, 我 去 年 刚 刚 入 这 个 行 业 的 时 候 做 的 是 发 行, 发 行 了 半 年 毛 钱 没 挣, 没 有 好

《C语言程序设计》教材习题参考答案

淄 博 市 2016 年 初 中 信 息 技 术 学 业 考 试 实 施 方 案 根 据 淄 博 市 2016 年 中 考 招 生 工 作 意 见 ( 淄 教 发 号 ) 要 求 和 实 际 情 况, 制 定 2016 年 初 中 信 息 技 术 学 业 考 试 实 施 方 案 一 组

目 录 欢 迎 使 用 产 品 介 绍 产 品 概 述 产 品 特 点 代 理 商 系 统 使 用 说 明 登 陆 基 本 信 息 分 销 商 管 理 帐 户

树立正确的择业观念 走好人生第一步

附件1

2009三季报全文.doc

棋牌类小游戏?游戏培训之2013年度IT消费调查报告:移动游戏之崛起


X-One 系统看穿式监管 V1.6.3 版本客户端及 API 使用相关说明

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

作 者 : 出 版 社 : 出 版 :

2011年会计证初级会计电算化考试大纲

财务制度

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

校友会系统白皮书feb_08

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

速 器 三 一 创 业 街 区 研 发 中 心 产 业 交 流 中 心 企 业 总 部 基 地 等 项 目, 发 起 成 立 3.5 亿 元 湖 南 三 一 创 业 投 资 基 金, 建 设 和 运 营 一 批 重 点 产 业 支 撑 平 台, 引 进 孵 化 300 家 以 上 企 业, 培 育

F515_CS_Book.book

05_06_浙江省发展和改革委员会网上并联审批系统实施案例.PDF

廣東普法 GUANG DONG THE FRANCO PRUSSIAN 本出版物内容未经许可 不得转载 违者必究 内部资料 免费交流 CONTENTS 以案释法 / P54 目录 工作集锦 / P56 卷首语 / P1 高层声音 / P4 吴爱英 深入扎实抓好司法行政各项改革落实工作 4 主办 广东

标题


1. 软 件 核 武 器 CTreeNode 基 本 原 理 以 下 详 细 介 绍 这 一 技 术 的 基 本 原 理 -CTreeNode 这 是 一 种 数 据 结 构, 类 似 于 CObject 存 在 于 内 存 中 1. 能 够 以 树 形 的 方 式 嵌 套 存 贮 非 常 复 杂

untitled

Microsoft Word - fm.doc

教学内容(含课程内容体系结构;教学内容组织方式与目的;实践性教学的设计思想与效果)

00蔡如雅report.doc

目 第 一 部 分 本 科 教 育 基 本 情 况... 1 一 学 校 办 学 定 位... 1 二 本 科 人 才 培 养 目 标 及 服 务 面 向... 1 三 教 学 工 作 中 心 地 位 落 实 情 况... 2 四 本 科 专 业 设 置 情 况... 3 五 各 类 全 日 制 在

<4D F736F F D C4EAB6C8B5B3D4B1D6F7CCE2BBEEB6AFA3A8D7E9D6AFC9FABBEEA3A9BCC7C2BC2E646F63>


<4D F736F F D20D6D0C9BDB4F3D1A7C6DAC4A9BFBCCAD4D1F9CCE2A3A8B2D9D7F7CFB5CDB3A3A92E646F63>

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

工 作 ; ( 二 ) 具 有 5 年 以 上 大 中 型 企 业 全 面 财 务 管 理 工 作 经 验, 财 务 或 会 计 专 业 本 科 及 以 上 学 历, 具 备 中 国 注 册 会 计 师 资 格 或 会 计 中 级 及 以 上 职 称 ; ( 三 ) 具 有 较 强 的 经 济 分

HY144-D-SRC 固件升级指南

務 相 關 的 約 點 及 內 容 / 托 嬰 契 約 (2) 居 家 托 育 人 員 在 中 心 托 育 人 員 2. 瞭 解 契 約 ( 到 ) 宅 托 兒 契 約 一 天 的 工 作 重 的 意 義 (3) 契 約 的 意 義 分 點 及 內 容 法 律 效 類 自 由 與 限 制 及 2.

腾信,互联网广告第一股,

<4D F736F F D20D5E3BDADBBECC4FDCDC1D0ADBBE1BCF2B1A8B5DA34C6DA2E646F63>

<4D F736F F D20C9EEDBDACAD0BAA3D4C2CDA8D0C5B6AFCCACC3DCC2EBBDE2BEF6B7BDB0B82E646F63>


<453A5CBFC6BCBCBED6B7A2CEC45C CCEC2CAD0BFC6B7A2A1B A1B333BAC520B9D8D3DABFAAD5B C4EAB6C8CAD0BFC6D1A7BCBCCAF5BDB1C9EAB1A8B9A4D7F7B5C4CDA8D6AA2E646F63>

陈鸿桥.doc

1-01

公 司 进 行 了 金 融 终 端 收 费 端 产 品 的 策 略 调 整, 金 融 数 据 服 务 业 务 预 收 收 入 出 现 较 大 幅 度 下 降, 主 营 业 务 收 入 较 去 年 同 期 出 现 较 大 幅 度 下 降 同 时, 公 司 继 续 加 大 战 略 性 投 入, 人 员

穨CAS1042快速安速說明.doc

游戏厅捕鱼技巧_天天酷跑游戏技巧 2048游戏技巧,游戏厅打鱼技巧_

Transcription:

PC-PC 的 IP 电话实验 一 实验目的 在一定程度上了解网络通信中多媒体通信的编程方法和基本思路 在我们的样本程序 中, 对定义变量和函数调用有比较详细的注释, 请同学们自己认真阅读 二 预备知识 要求对 Winsock 编程和四年级多媒体课程中声卡实验有相当的了解 有关 Winsock 编程的详细知识, 请参阅实验 TCP/IP 编程 的实验说明书 ; 或参考文件 Winsock 编程指南 ( 该文件摘自是 BBS 上 Winsock 版 ) 有关声卡编程的知识, 目前多媒体实验室没有电子版图书, 请同学们自己到图书馆借阅相关的 多媒体编程 一类的书籍 如果感觉到实验较困难, 可与辅导老师协商做本科生 计算机网络实验 中 单向语音传输实验 该实验为本实验的简化版本 三 实验原理 1 VC 中用于描述波形文件格式的有关结构体定义 (1) 结构体 PCMWAVEFORMAT PCMWAVEFORMAT 结构用于描述 PCM 结构波形数据的格式, 其结构定义如下所示 : WAVEFORMAT wf; WORD wbitspersample; } PCMWAVEFORMAT; 其中 WbitsPerSample 是采样率其中 wf 为 WAVEFORMAT 结构, 用于描述数据的一般结构信息, 它包括了所有波形文件的通用格式信息 结构定义如下所示 : WORD wformattag; WORD nchannels; DWORD nsamplespersec; DWORD navgbytespersec; WORD nblockalign;

WORD wbitspersample; WORD cbsize; } WAVEFORMATEX; 具体参数解释如下 : wformattag 波形数据的格式, 定义在 MMREG.H 文件中 nchannels 波形数据的通道数 : 单声道或立体声 nsamplespersec 采样率, 对于 PCM 格式的波形数据, 采样率有 8.0 khz, 11.025 khz, 22.05 khz, and 44.1 khz 等几种 navgbytespersec 数据率, 对于 PCM 格式的波形数据, 数据率等于采样率乘以每样点字节数 nblockalign 每个样点的字节数 wbitspersample 采样精度, 对于 PCM 格式的波形数据, 采样精度为 8 或 16 cbsize 附加格式信息的数据块大小 (2) 设备头结构 WAVEHDR 结构 WAVEHDR 定义了指向波形数据缓冲区的设备头, 具体定义如下 : LPSTR lpdata; DWORD dwbufferlength; DWORD dwbytesrecorded; DWORD dwuser; DWORD dwflags; DWORD dwloops; struct wavehdr_tag * lpnext; DWORD reserved; } WAVEHDR; lpdata 波形数据的缓冲区地址 dwbufferlength 波形数据的缓冲区地址的长度 dwbytesrecorded 当设备用于录音时, 标志已经录入的数据长度 dwuser 用户数据 dwflags 波形数据的缓冲区的属性 dwloops 播放循环的次数, 仅用于播放控制中 lpnext 和 reserved 均为保留值 注意 : 参考 VC 中 mmsystem.h 文件中的有关定义可以知道,PWAVEHDR, NPWAVEHDR, LPWAVEHDR,LPHWAVEIN 均定义为指向结构 WAVEHDR 的指针 在实验的样本程序中, 用到下列有关多媒体的结构 : HWAVEIN LPWAVEHDR

MMRESULT 2 样本程序的设计思路 (1) 样本程序的基本思路 本实验样本程序的基本思路是 : 发送端将录入的声音分时打包发送 ; 接收端将收到的 IP 包逐个播放 实验室给出的样本程序有 2 个文件 :SendVoice 目录下的项目文件用于录入并发送声音 RecieveVoice 目录下的项目文件用于接收并播放声音 整个程序建立在 TCP/IP 编程的技术之上, 思路非常简单 : 初始化 SOCKET 初始化声音设备 开始录音, 然后由 WINDOWS 自动发出的缓冲区满的消息控制发送 在程序结束时, 并没有将所有打开的设备关闭, 希望同学们在实验过程中能够将程序结束的清理部分内容添入 (2) 发送程序中有关声音的参数 程序中有关声音的参数定义如下 : char pinbuffer1; // 录音缓冲区 1(char) char pinbuffer2; // 录音缓冲区 2(char) HWAVEIN hwavein; // 录音设备标志 LPWAVEHDR pwavehdr1; // 设备设置头 1 LPWAVEHDR pwavehdr2; // 设备设置头 2 MMRESULT result; // 函数返回值 PCMWAVEFORMAT pcm; // 波形数据格式 BOOL m_recfirst; // 缓冲区使用标志 以上用到的结构体在实验原理的第一部分中有较为简洁的说明 如果看完了实验原理第 一部分以后仍然对 WINDOWS 中有关多媒体部分的结构定义不太清楚的话, 请仔细阅读 VC 中的相关帮助或到查询其他有关的书籍 在程序的初始化部分对声音采样的有关参数进行赋值 //Format of voice: 16 bits,11.025khz,mono audio pcm.wf.wformattag=wave_format_pcm; // 格式为 PCM pcm.wf.nchannels=1; // 单声道 mono pcm.wf.nsamplespersec=8000; // 采样率 pcm.wf.navgbytespersec=8000*2; // 数据率 pcm.wf.nblockalign=2; // 每样点的字节数 pcm.wbitspersample=16; // 采样精度并且分配缓冲区所需要的内存 // 录音设备头的初始化 pwavehdr1 =(LPWAVEHDR)GlobalAllocPtr(GHND GMEM_SHARE,sizeof(WAVEHDR)); pwavehdr2 =(LPWAVEHDR)GlobalAllocPtr(GHND GMEM_SHARE,sizeof(WAVEHDR)); // 录音缓冲区 pinbuffer1 =(char *)GlobalAllocPtr(GHND GMEM_SHARE,PCMBUFFER_SIZE);

pinbuffer2 =(char *)GlobalAllocPtr(GHND GMEM_SHARE,PCMBUFFER_SIZE); // 初始化缓冲区控制变量, 首先使用第一个缓冲区 m_recfirst=true; 在录音过程中用了两个录音缓冲区 pinbuffer1 pinbuffer2, 大小都是 360*8 录音过程 中轮流使用 pinbuffer1 和 pinbuffer2, 通过存取 BOOL 变量 m_recfirst 来标志正在使用的是 哪一个录音缓冲区 (3) 接收程序中有关声音的参数 程序中有关声音的参数定义如下 : char * poutbuffer1; // 放音缓冲区 1 char * poutbuffer2; // 放音缓冲区 2 char * rbuffer; // 接收缓冲区 No USE HWAVEOUT hwaveout; // 录音设备标志 LPWAVEHDR pwavehdr1; // 设备设置头 1 LPWAVEHDR pwavehdr2; // 设备设置头 2 MMRESULT result; PCMWAVEFORMAT pcm; // 波形数据格式 BOOL m_playfirst; // 缓冲区使用标志 以上用到的结构体在实验原理的第一部分中有较为简洁的说明 如果看完了实验原理第 一部分以后仍然对 WINDOWS 中有关多媒体部分的结构定义不太清楚的话, 请仔细阅读 VC 中的相关帮助或到查询其他有关的书籍 在程序的初始化部分对声音采样的有关参数进行赋值 //Format of voice: 16 bits,11.025khz,mono audio pcm.wf.wformattag=wave_format_pcm; // 格式为 PCM pcm.wf.nchannels=1; // 单声道 mono pcm.wf.nsamplespersec=8000; // 采样率 pcm.wf.navgbytespersec=8000*2; // 数据率 pcm.wf.nblockalign=2; // 每样点的字节数 pcm.wbitspersample=16; // 采样精度 并且分配缓冲区所需要的内存 pwavehdr1 =(LPWAVEHDR)GlobalAllocPtr(GHND GMEM_SHARE,sizeof(WAVEHDR)); pwavehdr2 =(LPWAVEHDR)GlobalAllocPtr(GHND GMEM_SHARE,sizeof(WAVEHDR)); // 放音缓冲区 poutbuffer1 =(char *)GlobalAllocPtr(GHND GMEM_SHARE,PCMBUFFER_SIZE); poutbuffer2 =(char *)GlobalAllocPtr(GHND GMEM_SHARE,PCMBUFFER_SIZE); // 接收缓冲区 rbuffer =(char *)GlobalAllocPtr(GHND GMEM_SHARE,PCMBUFFER_SIZE); // 初始化缓冲区控制变量, 首先使用第一个缓冲区 m_playfirst=true; 在放音过程中用了两个放音缓冲区 poutbuffer1 poutbuffer2, 大小都是 360*8 录音

过程中轮流使用 poutbuffer1 和 poutbuffer2, 通过存取 BOOL 变量 m_playfirst 来标志正在 使用的是哪一个录音缓冲区 注意 : 在样本程序中, 需要将 stdlib.h malloc.h wondowsx.h mmsystem.h 四个头文 件包含进项目, 并且需要在项目的连接设置中将库 mmwin.lib 连接入项目 四 实验要求 1. 实验 2 人一组或一人在本机上自行操作演示 实验样本程序发送和接收是两个独立的程序, 但均具备发送和接收两项功能, 需要在实验过程中更改 IP 地址 端口号等基本信息, 修改方法参见实验代码目录中的说明文件 编写自己的程序集成发送和接收功能 由辅导老师或实验室当值老师检查通过 五 思考题 1. WINDOWS 下 SOCKET 编程中阻塞方式和非阻塞方式有什么区别? 在你的程序中采用的是哪中方式? 为什么采用这种方式? 2. 波形文件的格式定义包括哪些部分? 在 VC 中有那些结构体定义与之相对应? 这些结构体是在哪个头文件中声明的? 3. 为了保证发送实时的声音, 在实验的样本程序中采用双缓冲区的结构, 为什么? 你采用的是什么办法? 阅读有关的联机帮助或文献, 是否有更好的办法? 怎样实现?