用C#播放音频和Flash

用C#播放音频和Flash

WinForm中如何播放声音与Flash动画

注意:小括号内的是按钮的其它翻译名称,不同版本的译名是有区别的。

一、在VC#播放声音

    新建一个VC#的Windows Form工程(Windows应用程序),并且定义两个菜单按钮(menuItem1,menuItem2)。
    选择菜单中的“工具”中的“自定义工具箱(添加/移除工具箱项)”,在自定义工具箱的窗口中,点击展开“COM 组件”项,选中“Window Media Player”选项。确定后在“工具箱”中便会出现“Windows Media Player”这一项,然后再将其拖至Form上,调整大小,系统在“引用”中自动加入了对此dll的引用,AxMediaPlayer就是我们使用的Namespace与class。
    在属性栏中设置好此控件的一些属性,为了方便,这里我把AutoStart设置成为true(其实默认是true),只要FileName被设置(打开了文件),则文件将会自动播放。完整代码如下:

private void menuItem1_Click(object sender, System.EventArgs e)
{ OpenFileDialog ofDialog = new OpenFileDialog();
ofDialog.AddExtension = true;
ofDialog.CheckFileExists = true;
ofDialog.CheckPathExists = true;

//the next sentence must be in single line
ofDialog.Filter = "VCD文件(*.dat)|*.dat|Audio文件(*.avi)|*.avi
   |WAV文件(*.wav)|*.wav|MP3文件(*.mp3)|*.mp3|所有文件 (*.*)|*.*";

ofDialog.DefaultExt = "*.mp3";
if(ofDialog.ShowDialog() == DialogResult.OK)
{
  this.axMediaPlayer1.FileName = ofDialog.FileName;
}
}

    这里使用的是微软的播放器,大家也可以试试Winamp的控件,如果你只需要播放声音而不需要显示,你只要把AxMediaPlayer的Visible属性设置为false就可以了。

二、播放Flash动画

    播放Flash动画的原理与声音差不多,也是直接引用Flash的dll,不过这个dll不能直接在“COM 组件”窗口中找到,需要我们手动添加,选择菜单中的“工具”--“自定义工具箱”,打开“自定义工具箱”窗口,在“COM 组件”中点击“浏览”键,然后选择“c:\\WINNT(WINDOWS)\\system32\\MacromedFlashswflash.ocx"控件,确定后在工具箱中就可以看到“FlashFactory”,“ShockwaveFlash”两个新控件,我们需要使用的是“ShockwaveFlash”,将其拖到新建的Form上,然后再设置一些属性即可。

下面是简单的操作代码,即打开swf文件,并播放它:

private void menuItem2_Click(object sender, System.EventArgs e)
{ OpenFileDialog ofDialog = new OpenFileDialog();
ofDialog.AddExtension = true;
ofDialog.CheckFileExists = true;
ofDialog.CheckPathExists = true;
ofDialog.Filter = "swf 文件 (*.swf)|*.swf|所有文件 (*.*)|*.*";
ofDialog.DefaultExt = "mp3";
if(ofDialog.ShowDialog() == DialogResult.OK)
{
  this.axShockwaveFlash1.Movie = ofDialog.FileName;
  this.axShockwaveFlash1.Play();
}
}

——————————————————————————————————————
男人的自信来自一个女人对他的崇拜,

女人的高傲来自一个男人对她的倾慕。

posted @ 2006-09-01 21:32 邵利超 阅读(2054) 评论(4)  编辑 收藏 网摘 所属分类: 不是经典我不转 关于C#

  回复  引用  查看    
#1楼 2006-11-27 17:46 | 勇勇      
作为学生的我看了后让我越来越想学好.NET
  回复  引用    
#2楼 2007-08-03 12:22 | 小飞 [未注册用户]
我怎么点不出来哪个 FileName能不能指点我下
还是我引入哪个命名空间?
我QQ596660770
  回复  引用    
#3楼 2008-03-17 15:35 | 雷雷 [未注册用户]
朋友,首先非常感谢你!但本人愚笨,遇到了和2楼的朋友同样的问题。就是
错误1“WindowsApplication1.Form1”并不包含“axMediaPlayer1”的定义 axMediaPlayer1是播放器的名字吧,就是在就是拖到窗体中的那个名字得命名吧!但我改后,它又报错:
错误1“AxWMPLib.AxWindowsMediaPlayer”并不包含“FileName”的定义

还有你说可以自动导入那三个引用,可我得没有导入啊?怎么导入?相信你一定帮我解决。谢谢!
可以的话:加我QQ:315371931
  回复  引用  查看    
#4楼 [楼主]2008-04-02 15:27 | 邵利超      
if内容改为

if (ofDialog.ShowDialog() == DialogResult.OK)
{
this.axWindowsMediaPlayer1.currentMedia=axWindowsMediaPlayer1.newMedia(ofDialog.FileName.ToString());
this.axWindowsMediaPlayer1.Ctlcontrols.play();
}




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-06-12 22:09 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: