[英]Playing mp3 files with mciSendString (MCIERR_CANNOT_LOAD_DRIVER)
[英]C++ not playing mp3 files through mciSendString
我的目標是構建一個播放 MP3 文件的音頻播放器。 為此,我使用了mciSendString()
function。 所有 MP3 文件與主源文件位於同一文件夾中。 盡管我無法播放 MP3 文件,但我已經在線查看了文檔和一些語法。 當我 select 一首歌時,它不播放,代碼跳到system("pause")
。
我的 header 文件
#include <iostream>
#include <windows.h>
#include <conio.h>
#pragma comment(lib, "Winmm.lib")
using namespace std;
播放 MP3 文件的 Function:
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();
}
您open
的命令沒有正確轉義,並且您沒有檢查返回值是否有錯誤。
但是即使沒有發生錯誤, play
命令也是異步的,所以一旦開始播放, mciSendString()
仍然會立即退出。 您需要指定wait
標志來等待播放完成,或者使用notify
標志在播放完成時得到通知。 請參閱等待、通知和測試標志
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.