C# mciSendString()实现循环播放音乐

本文介绍如何使用C#语言结合mciSendString方法实现音乐文件的循环播放功能。通过具体的代码示例展示了如何利用mciSendString进行音乐文件的打开、播放以及循环播放时的回调处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明这是 微软论坛上看的. 我看了很多人都在查找C#   mciSendString()循环播放音乐
学英语重要呀。

using  System;
using  System.Runtime.InteropServices;
using  System.Text;
using  System.Windows.Forms;

namespace  PlayMp3WithWindow
{
    
public   partial   class  Form1 : Form
    {
        
public   const   int  MM_MCINOTIFY  =   0x3B9 ;   // 这是声明 播完音乐 mciSendString()向系统发送的指令

        [DllImport(
" winmm.dll " )]
        
private   static   extern   long  mciSendString( string  command,
                                                    StringBuilder returnString,
                                                    
int  returnSize,
                                                    IntPtr hwndCallback);
        
public  Form1()
        {
            InitializeComponent();

            PlaySong(
@" 123.mp3 " );   //  when complete callback to DefWndProc

                                              
// 歌曲路径,开始就播放这个     

        }

        
protected   override   void  DefWndProc( ref  Message m)
        {
            
base .DefWndProc( ref  m);            

        
if  (m.Msg  ==  MM_MCINOTIFY)  // 判断指令是不是MM_MCINOTIFY

                          
// 当歌曲播完 mciSendString()向系统发送的MM_MCINOTIFY指令
            {
                PlaySong(
@" 456.mp3 " ); // 播完就自动播放这个。。。
            }
        }


        
public   void  PlaySong( string  file)
        {
            mciSendString(
" close media " null 0 , IntPtr.Zero); // 关闭
            mciSendString( " open \" "   +  file  +   " \" type mpegvideo alias media " null 0 , IntPtr.Zero);

// 打开  file 这个路径的歌曲 " ,type mpegvideo是文件类型  ,    alias 是将文件别名为media 
            mciSendString( " play media notify " null 0 this .Handle); // 播放
        }

    }
}

 seo:http://greatverve.cnblogs.com/archive/2011/06/24/mciSendString.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值