多媒体编程音频视频实验报告

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京工程学院

实验报告

课程名称多媒体编程基础

实验项目名称音频和视频

实验学生班级多媒体132 实验学生姓名滕超

学号 202130229 同组学生姓名无

实验时间 2016 年 5 月 26 日

实验地点信息楼A213

实验5 音频/视频处理

一、实验目的:

1.理解Windows系统中音频、视频处理的方法。

2.理解MCI接口的概念。

3.了解音视频处理技巧,以及实际应用方法

4.掌握实现音频播放器和视频播放器的常用方法。

二、实验环境及开发工具:

PC机、Windows 8.1操作系统、Visual C++ 2013

三、实验要求及内容:

1)理解第9章教材例题及上课所讲的参考例程。

2)运用学过的知识,在理解例题的基础上自己编写一个多媒体播放器应用程序,包括:一个音频(MP3、wma)播放器和一个视频播放器处理(avi、wmv、asf)程序,要求具有以下功能:

可以播放本机中的音视频媒体文件文件;

音频播放参照课堂提供的例子, 必须创建一个播放类来实现

视频播放可以直接使用WMP控件,适当添加针对文件的操作功能。

音频设计流程图:

音频界面设计如下:

使用CPlayWave类

/*PlayWave.h*/

#pragma once

#include "mmsystem.h"

class CPlayWave

{

//定义保护保护成员

protected:

MCIDEVICEID m_DeviceID; //记录波形设备ID

MCIDEVICEID m_ElementID; //记录波形元素ID

public:

CPlayWave(void);

~CPlayWave(void);

DWORD InitDevice(void);

DWORD TeminalDevice(void);

DWORD Play(HWND hWnd, LPCWSTR pFileName);

DWORD Stop(void);

DWORD Pause();

DWORD Resume();

};

/*PlayWave.cpp*/

#include "StdAfx.h"

#include "PlayWave.h"

CPlayWave::CPlayWave(void)

{

m_DeviceID = 0; //初始化设备ID

m_ElementID = 0; //初始化元素ID

InitDevice(); //调用InitDevice方法初始化设

}

CPlayWave::~CPlayWave(void)

{

if (m_ElementID) //判断波形元素是否为0 Stop(); //停止波形元素

if (m_DeviceID) //判断波形设备是否为0 TeminalDevice(); //停止波形设备

}

DWORD CPlayWave::InitDevice(void)

{

DWORD dwResult = 0; //定义一个整型变量

if (m_DeviceID == 0) //如果设备ID为0

{

MCI_OPEN_PARMS mciInitParms; //定义打开参数

mciInitParms.lpstrDeviceType =

(LPWSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;

dwResult = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_TYPE |

MCI_OPEN_TYPE_ID

| MCI_WAIT, (DWORD)(LPVOID)&mciInitParms); //打开波形设备

m_DeviceID = mciInitParms.wDeviceID;

}

return dwResult;

}

DWORD CPlayWave::TeminalDevice(void)

{

DWORD dwResult = 0; //定义一个整型变量if (m_DeviceID) //判断设备ID是否为0

{

//关闭波形设备

dwResult = mciSendCommand(m_DeviceID, MCI_CLOSE, NULL, NULL);

}

m_DeviceID = 0; //将波形设备ID设置为0

return dwResult;

}

DWORD CPlayWave::Play(HWND hWnd, LPCWSTR pFileName)

{

MCI_OPEN_PARMS mciOpenParms; //定义打开参数

memset(&mciOpenParms, 0, sizeof(MCI_OPEN_PARMS)); //初始化参数mciOpenParms.lpstrElementName = pFileName; //设置文件名DWORD dwResult = 0; //定义整型变量dwResult = mciSendCommand(m_DeviceID, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOpenParms); //打开波形元素if (!dwResult)

{

m_ElementID = mciOpenParms.wDeviceID; //获取波形元素ID

MCI_PLAY_PARMS mciPlayParms; //定义播放参数

mciPlayParms.dwCallback = (DWORD)hWnd; //设置播放参数

dwResult = mciSendCommand(m_ElementID, MCI_PLAY,

MCI_NOTIFY, (DWORD)(LPVOID)&mciPlayParms); //播放wav文件}

相关文档
最新文档