十分简单的问题! 有没有熟悉VC下多媒体编程的高手?(100分)

  • 主题发起人 主题发起人 stockingpippi
  • 开始时间 开始时间
S

stockingpippi

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要写一个十分简单的多媒体程序(用VC).要求:
能播放用户选择的audio和video等, 用户界面有"播放","停止","暂停"控制即可.
若用VC,(我对MCI不熟), 有没有可直接用的类,或控件?
若那位同学有相关的源程序, 能不能借我一看?我可以再添上100分!

谢谢!
 
到<a href= "www.codeguru.com">codeguru</a>去看看有没有类似源码.
 
我下载了MMTools ActiveX control,但不知道该如何用.因为没有文当.而且使用该控件需要注册.
所以想问一下那里有诸如此类的免费控件?只需要支持像的文件即可.希望大家帮帮我!
我可以再出155分.(所有家当!)
谢谢!
 
到www.vchelp.net看看
 
这个简单,用CMediaPlayer这个类就可以全搞定了。
 
请继续或结束

很多VC的书上都有提及多媒体编程的啊,最简单的是直接利用MediaPlayer这个OCX
 

VC 6.0下自制媒体播放器
哈尔滨工程大学自动化学院
刘才

---- 可视动画控件ActiveMovie是Microsoft公司开发的ActiveX控件,从开
始的1.0版、1.2版到现在的2.0版,功能上已经有了很大的改进。由于该控件
内嵌了Microsoft MPEG音频解码器和Microsoft MPEG视频解码器,所以能够
很好地支持音频文件和视频文件,用其播放的VCD效果就很好。另外,播放时
若用鼠标右键单击画面,可以直接对画面的播放、暂停、停止等进行控制,
读者还可以自行在&amp;ldquo;属性&amp;rdquo;栏中对影片播放进行控制设置,用起
来非常方便。 在Microsoft公司去年推出的VC++6.0中已经包含了
ActiveMovie控件的2.0版,笔 者 在VC++6.0下利用这个控件自制了一个简易
的媒体播放器,除了满屏功能外,还可以对音量进行控制。下面把具体做法
介绍给读者。

---- 一 建立工程

---- 利用 VC++6.0的AppWizard生成一个基于对话框的工程Player,去掉对
话框上的&amp;ldquo;确定&amp;rdquo;
和&amp;ldquo;取消&amp;rdquo;按钮,并加入
ActiveMovie控件(通常情况下ActiveMovie控件并不出现在控件面板中,可
在菜单中依次选择&amp;ldquo;project&amp;mdash;
>Add To Project&amp;mdash;

>Components And Controls&amp;rdquo;,在出现的&amp;ldquo;Components And
Controls Gallery&amp;rdquo;对话框中打开&amp;ldquo;Registered Active
Controls&amp;rdquo;文件夹,选中&amp;ldquo;ActiveMovie Control Object&amp;rdquo;
选项,按&amp;ldquo;Insert&amp;rdquo;后关闭该对话框,ActiveMovie控件便出现在
控件面板中),调整好控件在对话框中的位置。为了能够控制控件的操作,
应为对话框设计一个菜单,菜单的项目可以定为&amp;ldquo;文件&amp;rdquo;、
&amp;ldquo;屏幕控制&amp;ldquo;和&amp;ldquo;音量控制&amp;rdquo;。

---- 二 添加代码

---- 首先利用ClassWizard为ActiveMovie控件声明一个变量m_ActiveMovie
。然后为菜单 &amp;ldquo;文件&amp;rdquo;添加两个菜单项&amp;ldquo;打开文件&amp;rdquo;
和&amp;ldquo;退出&amp;rdquo;,并分别添加函数OnOpen()和OnExit(),代码如
下:

void Cplayer::OnOpen()
{
// TODO: Add your command handler code here
char szFilter[] = " Video File (*.dat)|
*.dat|Wave File (*.wav)|*.wav|AVI File (*.avi)|
(*.avi)|Movie File (*.mov)|(*.mov)|
Media File (*.mmm)|(*.mmm)|Mid File(*.mid;*.rmi)|
(*.mid;*.rmi)|MPEG File (*.mpeg)|(*.mpeg)|
All File (*.*) *.* ";//用于设置FileDialog的文件类型

CFileDialog FileDlg( TRUE, NULL, NULL,
OFN_HIDEREADONLY, szFilter );
if( FileDlg.DoModal() == IDOK )
{
CString PathName = FileDlg.GetPathName();
PathName.MakeUpper();
m_ActiveMovie.SetFileName(PathName);
}
}

---- OnOpen()函数的作用是显示&amp;ldquo;打开&amp;rdquo;对话框,通过该对话框
选择要执行的文件。

void CPlayer::OnExit()
{
// TODO: Add your command handler code here
OnOK();//退出应用程序
}

---- 为菜单&amp;ldquo;屏幕控制&amp;rdquo;添加菜单项&amp;ldquo;满屏&amp;rdquo;,其响
应函数为OnFully(),具体代码如下:

void CPlayer::OnFully()
{
// TODO: Add your command handler code here
m_ActiveMovie.Pause ();//暂停播放
m_ActiveMovie.SetFullScreenMode(true);//设置满屏模式
m_ActiveMovie. Run();//继续播放
m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);
//设置窗口为最大
}

---- ActiveMovie控件还提供了控制音量的两个函数GetVolume()和
SetVolume(),只要在程序中调用这两个函数,便可以达到控制音量的目的。
为&amp;ldquo;音量控制&amp;rdquo;添加&amp;ldquo;增加&amp;rdquo;和&amp;ldquo;减小&amp;rdquo;
两个菜单项,其响应函数分别为:

void CVcdDlg::OnAdd()
{
// TODO: Add your command handler code here
long m_valume= m_ActiveMovie.GetVolume ();
//获取当前音量
m_ActiveMovie.Pause ();
m_ActiveMovie.SetVolume(m_valume+100);
//用于增加音量
m_ActiveMovie.Run ();
}
void CVcdDlg::OnReducing()
{
// TODO: Add your command handler code here
long m_valume= m_ActiveMovie.GetVolume ();
m_ActiveMovie.Pause ();
m_ActiveMovie.SetVolume(m_valume-100);
//用于减小音量
m_ActiveMovie.Run ();
}

---- 在声卡的控制菜单上给出了&amp;ldquo;静音&amp;rdquo;操作,那么能否为我们
自己制作的媒体播放器加上 &amp;ldquo;静音&amp;rdquo;功能呢?回答是肯定的。虽
然ActiveMovie控件并没有直接提供&amp;ldquo;静音&amp;rdquo;函数,但可以通过控
制函数SetVolume()的参数来实现&amp;ldquo;静音&amp;rdquo;的效果。笔者经过反复
试验,当 SetVolume()的参数设为-4000使效果比较理想。要实现静音功能,
应先为&amp;ldquo;音量控制&amp;rdquo;加入菜单项&amp;ldquo;静音&amp;rdquo;,并添加消
息响应函数OnMute(),代码如下:

void CVcdDlg::OnMute()
{
// TODO: Add your command handler code here
m_ActiveMovie.Pause ();
m_ActiveMovie.SetVolume(-4000);
m_ActiveMovie.Run ();
}

---- 编译运行本程序,便可以用自制的媒体播放器欣赏光盘上的音频或视频
节目了。
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部