【问题标题】:C++ not playing mp3 files through mciSendStringC++ 不通过 mciSendString 播放 mp3 文件
【发布时间】:2022-01-08 07:00:50
【问题描述】:

我的目标是构建一个播放 MP3 文件的音频播放器。为此,我使用了mciSendString() 函数。所有 MP3 文件与主源文件位于同一文件夹中。尽管我无法播放 MP3 文件,但我已经在线查看了文档和一些语法。当我选择一首歌曲时,它不播放,代码跳转到system("pause")

我的头文件

#include <iostream>
#include <windows.h>
#include <conio.h>
#pragma comment(lib, "Winmm.lib")

using namespace std;

播放 MP3 文件的功能:

void playsong()
{
    int song;
    system("cls");
    cout << "****************************" << endl;
    cout << "\tPLAYING SONG\n";
    cout << "****************************" << endl;
    cout << "List of Songs\n";
    cout << "1.0\n";
    cout << "2.AFSANAY\n";
    cout << "3.Agency\n";
       
    cin >> song;
    switch(song)
    {
        case 1:
        {
            mciSendString("open \"C:\\Users\Murad\Documents\3rd Semester\OOP\Assignments\Assignmnet 1\Assignmnet 1\0.mp3\" type mpegvideo alias mp3", NULL, 0, NULL);
            mciSendString("play mp3", NULL, 0, NULL); 
            break;
        }
        case 2:
        {
           mciSendString("open \"C:\\Users\Murad\Documents\3rd Semester\OOP\Assignments\Assignmnet 1\Assignmnet 1\AFSANAY.mp3\" type mpegvideo alias mp3", NULL, 0, NULL);
           mciSendString("play mp3", NULL, 0, NULL);
           break;
        }
        case 3:
        {
            mciSendString("open \"C:\\Users\Murad\Documents\3rd Semester\OOP\Assignments\Assignmnet 1\Assignmnet 1\Agency.mp3\" type mpegvideo alias mp3", NULL, 0, NULL);
            mciSendString("play mp3", NULL, 0, NULL);
            break;
        }
    }

    system("pause");
    system("cls");
    display();
}

【问题讨论】:

  • 其中一个问题是您发送到mciSendString 的字符串。在 Google 上查找字符转义序列

标签: c++ audio mp3 winmm mci


【解决方案1】:

您的open 命令没有正确转义,并且您没有检查返回值是否有错误。

但即使没有发生错误,play 命令也是异步,因此一旦开始播放,mciSendString() 仍会立即退出。您需要指定wait 标志来等待播放完成,或者使用notify 标志在播放完成时收到通知。见The Wait, Notify, and Test Flags

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多