yakczh_cu 发表于 2016-09-11 18:42

mci 播放wave文件不成功

本帖最后由 yakczh_cu 于 2016-09-11 18:43 编辑



#include <stdio.h>   
#include <Windows.h>
#include "mmsystem.h"   
#pragma comment(lib, "winmm.lib")   



int main()
{
    UINT wDeviceID;
    DWORD dwReturn;
    MCI_OPEN_PARMS mciOpenParms;
    MCI_PLAY_PARMS mciPlayParms;

    //***************************************************************************
    mciOpenParms.lpstrDeviceType = "WaveAudio";
    mciOpenParms.lpstrElementName ="44.wav";

    if (dwReturn = mciSendCommand(0, MCI_OPEN,//这里是打开wave设备
                MCI_OPEN_ELEMENT|MCI_OPEN_TYPE,
                (DWORD)(LPVOID) &mciOpenParms))
    {
      // Failed to open device; don't close it, just return error.
      char buffer;
      mciGetErrorString(dwReturn, buffer,sizeof(buffer));
      printf("error -> %s",buffer);
    }

    if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY,
                (DWORD)(LPVOID) &mciPlayParms))
    {
      mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
      return (dwReturn);
    }


    return 0;
}



运行也不报错,但也没有声音,wav文件是存在的 用midiaplay可以播放

bruceteen 发表于 2016-09-12 08:44

#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")

const char* MciGetErrorString( DWORD MciReturn )
{
    static char buffer;
    mciGetErrorStringA( MciReturn, buffer, sizeof(buffer) );
    return buffer;
}

int main( void )
{
    MCI_OPEN_PARMSA mciOpenParms;
    mciOpenParms.lpstrDeviceType = "WaveAudio";
    mciOpenParms.lpstrElementName = "44.wav";
    DWORD dwReturn = mciSendCommandA( 0, MCI_OPEN, MCI_OPEN_ELEMENT|MCI_OPEN_TYPE, (DWORD_PTR)&mciOpenParms );
    if( dwReturn != 0 )
      printf( "error -> %s\n", MciGetErrorString(dwReturn) );
    else
    {
      dwReturn = mciSendCommand( mciOpenParms.wDeviceID, MCI_PLAY, MCI_WAIT, NULL );
      if( dwReturn != 0 )
            printf( "error -> %s\n", MciGetErrorString(dwReturn) );

      mciSendCommand( mciOpenParms.wDeviceID, MCI_CLOSE, 0, NULL );
    }

    return dwReturn==0;
}

yakczh_cu 发表于 2016-09-12 21:50

本帖最后由 yakczh_cu 于 2016-09-12 21:56 编辑

回复 2# bruceteen
再请教一下,我装了个虚拟声卡,这样可以用程序实现内录电脑中的音频数据,但是要录音首先把默认播放设备设置成虚拟声卡, 要听录音文件效果的时候再把默认播放设备切换成扬声器, 有没有办法可以录音的时候实现就实现播放声音文件到耳机(或者其他设备) ?
页: [1]
查看完整版本: mci 播放wave文件不成功