流媒体技术实验指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉理工大学信息工程学院
流媒体技术实验指导书
2006年9月5日
目录
实验1:常用流媒体软件使用 (1)
一:实验目的 (1)
二:实验的内容 (1)
三:实验的步骤 (1)
实验2:客户端的开发编程 (2)
一:实验目的 (2)
二:实验内容 (2)
三:实验步骤 (2)
实验3:服务器端开发编程 (4)
一:实验目的 (4)
二:实验内容 (4)
三:实验步骤 (4)
实验4:流媒体服务器搭建 (6)
一:实验目的 (6)
二:实验内容 (6)
三:实验步骤(以Real Server为例) (6)
实验1:常用流媒体软件使用
一:实验目的
1.学习使用Windows MediaPlayer、Real Player、QuickTime Player等常见的流
媒体软件。
二:实验的内容
1.掌握这三种软件运行各种参数的含义及其配置的方法;描述一些重要参数对
软件运行的影响。
2.了解这三种软件的运行机制和开发方法。
3.比较这三种软件的优缺点。
4.撰写实验报告。
三:实验的步骤
1.下载并安装windows MediaPlayer。微软公司提供MediaPlayer的免费下载,
下载地址/windows/windowsmedia/download/。根据安装程序的提示完成软件的安装。
2.学习使用MediaPlayer软件,熟悉其各种参数的具体含义并进行合理配置。
如:创建播放列表,选择合理的编解码和传输速率等。
3.下载并安装Real Player。下载地址:/。根据程序的
提示完成软件的安装。
4.学习使用RealPlayer软件,熟悉其各种参数的具体含义并进行合理配置。如:
创建播放列表,选择合理的编解码方案和传输速率等。
5.下载并安装QuickTime软件。下载地址:
/quicktime/download/win.html。根据程序的提示完成软件的安装。
6.学习使用QuickTime软件,熟悉其各种参数的具体含义并进行合理配置。如:
创建播放列表,选择合理的编解码方案和传输速率等。
实验2:客户端的开发编程
一:实验目的
将Media Player,RealPlayer和QuickTimePlayer三种媒体播放软件嵌入到网页中,实现在网页观看节目。
二:实验内容
1.了解ActiveX控件的工作原理。
2.使用FrontPage、Dreamweaver等网页制作工具,生成嵌入Media Player, Real
Player和QuickTime Player这三种ActiveX控件的HTML脚本,在脚本中设置ActiveX控件的参数。
3.撰写实验报告。
三:实验步骤
1.打开FrontPage2000,选择“插入”菜单中德“高级/ActiveX控件…”选项。
弹出一个插入ActiveX控件窗口。如图所示:
2.选择“Windows Media Player”控件后,单击“确定”按钮,页面如图所示。
定。
5.Real Player和QuickTime Player类似地嵌入网页。
实验3:服务器端开发编程
一:实验目的
熟悉流媒体的Windows Media SDK。在现有的Media Player的基础上,利用Media SDK提供的函数库,完成一个小功能插件。
二:实验内容
1.利用Media SDK,实现“查找”功能的插件。
2.撰写实验报告
三:实验步骤
1.从/windowsmedia/downloads/default.aspx地址下载
Windows Media SDK,并根据说明安装SDK。
2.在VC++创建新工程(project),在Project选项中选择“Windows Media Player
Plug-in Wizard”,工程命名为“search”。点击OK。
3.选择“UI plug-in”,点击Next。
4.实现Csearch类。
class ATL_NO_VTABLE CSearch :
public CComObjectRootEx
public CComCoClass
public IWMPPluginUI
{
friend class CPluginWindow;
// Rest of class definition...
}
5.实现CpluginWindow类。
OnPaint方法:
LRESULT OnPaint(UINT nMsg, WPARAM wParam,
LPARAM lParam, BOOL& bHandled)
{
PAINTSTRUCT ps;
HDC hDC = BeginPaint(&ps);
RECT rc;
GetClientRect(&rc);
HBRUSH hNewBrush = ::CreateSolidBrush( RGB(0, 0, 0) );
if (hNewBrush)
{
::FillRect(hDC, &rc, hNewBrush );
::DeleteObject( hNewBrush );
}
EndPaint(&ps);
return 0;
}
实现OnSearch方法。
LRESULT OnSearch(WORD wNotifyCode, WORD wID, HWND hwndCtl, BOOL& fHandled)
{
HRESULT hr;
CComPtr
if( m_pPlugin && m_pPlugin->m_spCore )
{
// Get a pointer to the current media item.
hr = m_pPlugin->m_spCore->get_currentMedia(&spMedia);
if (SUCCEEDED(hr) && spMedia)
{
LaunchPage(spMedia);
}
else
{
MessageBox(_T("There is no media loaded."), _T("Warn"), MB_OK | MB_ICONW ARNING);
}
}
return 0;
}
6.编译工程
7.在客户端下载插件并运行。