mciSendCommand试过了,一开始会卡一下,很不爽的有人说可以用midiOutOpen()试试,不过话都说半截,网上又找不到它的使用示例。
不管midiOutOpen()能不能解决问题,只要提供一个可用的播放Midi文件的midiOutOpen()示例,一样给分……请各位帮忙……

解决方案 »

  1.   

    没研究过,看到这个帖子希望对你有点帮助。http://smth.edu.cn/bbsanc.php?path=%2Fgroups%2Fdevelop.faq%2FGAME_Designer%2Ftechnology%2FGameMusic%2Fmidi
      

  2.   

    http://www.codeproject.com/audio/wavefiles.asp
      

  3.   

    我用的时候,也卡.我使用CMIDI类.
      

  4.   

    http://www.codeproject.com/audio/mididemocp.asp最好用dx来做。
      

  5.   

    楼上的兄台给的连接的播放原理也是调用MCI的mciSendString,一样要卡一下。
    不过下载了一个用DirectMusic的,的确是不卡,就是半天才放出声音来。不知道midiOutOpen()性能怎样,不会用……先谢过楼上几位了……
      

  6.   

    算了不管midi了,有谁知道MCI怎么播放资源或内存中的wav文件,不要告诉我先写到文件里面去哦。
      

  7.   

    http://blog.yesky.com/407/tiger12/66907.shtml
      

  8.   

    播放wav文件(播放资源或内存中的wav文件不清楚)  SndPlaySound('*.wav',SND_ASYNC);  SndPlaySound(nil,0);
      

  9.   

    播放midi音乐,不管是用mmplayer,还是用mciSendCommand,都会出现延时好几秒的情况,好郁闷!也来等答案吧!呵呵,楼上的居然也叫三三.
      

  10.   

    "不要告诉我先写到文件里面去哦"-_-b咋就不注意这几个字涅……播放wav,SndPlaySound或PlaySound(可以从资源播放)或mci都会,不过mci不知道怎么放资源或内存里的文件。原来是想用mid音乐做背景,不过会卡,所以换用wav了,而且按键还要有音效的效果,所以不能单用一个PlaySound实现,而且背景也相对较大,所以用mci好了。不过呢,最后总是要一个exe就好了吧,外面托一个背景音乐文件看起来很烦,所以就需要从资源或内存加载。总不要傻到做先写入文件再读取这样没效率的事情吧。directSound放wav倒是可以从内存读,不过这样一个小程序,不至于搞得那么复杂吧……
      

  11.   

    终于找到了,以下是mci读内存wav的方法,似乎mid,avi之类也适用
    http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B155360可惜了mid卡的问题还是没解决先结了帖吧……
      

  12.   

    晕,这么快就结了,急啥?
    你可以把wav文件导入资源,然后调用PlaySound播放:
    PlaySound( (char*)IDR_WAVE, NULL, SND_ASYNC | SND_RESOURCE );
      

  13.   

    噢,刚看完lz的帖子。按键要音效为何就不能用PlaySound?有点不解。exe大倒是真的,总之解决了就好:)