C#播放背景音乐通常有四种方式:

  1.播放系统事件声音

  2.使用System.Media.SoundPlayer播放wav------------------------仅仅是对波形音乐

  3.使用MCI Command String多媒体设备程序接口播放mp3,avi等

  4.使用axWindowsMediaPlayer的COM组件来播放

1.播放系统事件声音 

System.Media.SystemSounds.Asterisk.Play(); System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Exclamation.Play(); System.Media.SystemSounds.Hand.Play();
System.Media.SystemSounds.Question.Play();

2.使用System.Media.SoundPlayer播放wav

System.Media.SoundPlayer sp = new SoundPlayer();
sp.SoundLocation = @"D:/10sec.wav";
sp.PlayLooping();

3.使用MCI Command String多媒体设备程序接口播放mp3,avi等

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices; namespace MyWenxinTool
{
public class musicplay
{ public static uint SND_ASYNC = 0x0001;
public static uint SND_FILENAME = 0x00020000;
[DllImport("winmm.dll")]
public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, uint hWndCallback); public static void PlayNmusinc(string path)
{
mciSendString(@"close temp_alias", null, , );
mciSendString(@"open """+path+@""" alias temp_alias", null, , );
mciSendString("play temp_alias repeat", null, , );
} /// <summary>
/// 播放音乐文件(重复)
/// </summary>
/// <param name="p_FileName">音乐文件名称</param>
public static void PlayMusic_Repeat(string p_FileName)
{
try
{
mciSendString(@"close temp_music", " ", , );
mciSendString(@"open " + p_FileName + " alias temp_music", " ", , );
mciSendString(@"play temp_music repeat", " ", , );
}
catch
{ }
} /// <summary>
/// 播放音乐文件
/// </summary>
/// <param name="p_FileName">音乐文件名称</param>
public static void PlayMusic(string p_FileName)
{
try
{
mciSendString(@"close temp_music", " ", , );
//mciSendString(@"open " + p_FileName + " alias temp_music", " ", 0, 0);
mciSendString(@"open """ + p_FileName + @""" alias temp_music", null, , );
mciSendString(@"play temp_music", " ", , );
}
catch
{ }
} /// <summary>
/// 停止当前音乐播放
/// </summary>
/// <param name="p_FileName">音乐文件名称</param>
public static void StopMusic(string p_FileName)
{
try
{
mciSendString(@"close " + p_FileName, " ", , );
}
catch { }
} } }

关于mciSendString的详细参数说明,请参见MSDN,或是 http://blog.csdn.net/psongchao/archive/2007/01/19/1487788.aspx

4.使用axWindowsMediaPlayer的COM组件来播放

a.加载COM组件:添加引用-->Com组件--> Windows Media Player如下图:

b.把Windows Media Player控件拖放到Winform窗体中,把axWindowsMediaPlayer1中URL属性设置为MP3或是AVI的文件路径,F5运行。

如何使用Windows Media Player循环播放列表中的媒体文件?

假设我们有一个播放列表,下面的代码可以实现自动循环播放

MediaPlayer.MediaPlayer mr = new MediaPlayer.MediaPlayer();
mr.FileName = txpath.Text.Trim();
mr.Play();

MCI Command String和Windows Media Player都有非常丰富的功能接口,这里不能一一介绍,可以参考MSDN中的具体描述.

C# Window Form播放音乐的4种方式的更多相关文章

  1. Android中播放音乐的几种方式

    前言 前几天一直在研究RxJava2,也写了记录了几篇博客,但因为工作任务原因,需要研究音频相关的知识,暂时放下Rxjava,本文的demo中,MediaPalyer 部分使用RxJava编写一点逻辑 ...

  2. 【Android】播放音频的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

  3. java播放背景音乐的几种方式

    大四第一学期快结束了,准备找实习单位的时候,用了一周的时间去投简历去面试,结果没有一家有反馈要不就是面试没通过,拿着iOS的项目(在老师工作室的外包项目)去面试java开发,结果全部碰壁. 第一种,直 ...

  4. window.open()打开窗口的几种方式

    1. window.open("http://www.baidu.com/", "_search");//在一个新的窗口打开百度,并且使URL地址出现在搜索栏中 ...

  5. Android播放音频的两种方式

    一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐. 代码如下: private MediaPlayer mPlayer = null; mPlayer = Med ...

  6. window.open打开窗口的几种方式

    1. 在当前窗口打开百度,并且使URL地址出现在搜索栏中. window.open("http://www.baidu.com/", "_search"); w ...

  7. form表单提交三种方式,demo实例详解

    第一种:使用type=submit  可以直接提交 <html> <head> <title>submit直接提交</title> </head& ...

  8. form上传文件2种方式

    示例1: 表单里有图片/文件的上传 <form enctype="multipart/form-data" method="post"> <i ...

  9. 清空FORM表单的几种方式 Reset 重加载

    1. form中定义name <form name = "sbform" action="sb_add.php" method="post&qu ...

随机推荐

  1. while练习:输入一个班级的人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩。

    Console.WriteLine("请输入班级的总人数:"); int count = int.Parse(Console.ReadLine()); ;//声明一个循环变量来记录 ...

  2. DedeCMS全版本通杀SQL注入漏洞利用代码

    EXP: Exp:plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\'   or mid=@`\'` /*!50000u ...

  3. mysql 用户方面的操作

    1.只新建用户的操作 mysql -u root -p密码mysql> insert into mysql.user(Host,User,Password) values(‘localhost’ ...

  4. 安装lnmp后,忘记phpmyadmin的root密码,怎么办

    如果忘记MySQL root密码,如何重设密码?执行如下命令:wget http://soft.vpser.net/lnmp/ext/reset_mysql_root_password.sh;sh r ...

  5. 如何在WordPress中使用七牛云存储

    序:七牛云存储可以方便的将网站的图片等数据镜像到七牛云存储的空间,直接从云端将数据返回给用户.这样可以大大节省网站的空间,提升网站的访问速度. 真正显示一键实现WordPress博客静态文件CDN加速 ...

  6. 繁华模拟赛 ljw搭积木

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  7. Tautology(structure)

    Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10061   Accepted: 3826 Descri ...

  8. storyboard和xib的各种问题

    1.prepareFoSegue注意问题使用该方法设置的值, 必须要 viewWillApear之后用 2.storayboard的使用autolayout, constant = -16, 刚好在f ...

  9. rubycas-client单点登录

    (文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 进行中,未完待续 Ruby 客户端 使用方法0. 在 Gemfile中,加入: gem 'rubyc ...

  10. Stanford机器学习---第七讲. 机器学习系统设计

    原文:http://blog.csdn.net/abcjennifer/article/details/7834256 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...