Я использую mciSendString("play path repeat",0,0,0)
для воспроизведения музыки в своем проекте, и я использую его специально для одновременного воспроизведения нескольких звуков.
Проблема в том, что я хочу поместить звуки в путь к исполняемому файлу, поэтому я использовал функцию для получения пути к exe.
string ExePath() {
char buffer[MAX_PATH];
GetModuleFileName( NULL, buffer, MAX_PATH );
string::size_type pos = string( buffer ).find_last_of( "\\/" );
return string( buffer ).substr( 0, pos);
}
но mciSendString()
занимает LPCSTR
поэтому я попробовал следующее
string music_cmd="play "+ExePath()+"\\war1.mp3 repeat";
mciSendString(music_cmd.c_str(),0,0,0);
Программа работает без ошибок, но не воспроизводит звук. Как я могу решить эту проблему?
mciSendcommand
вместоmciSendString
и использовать следующий пример от Microsoft. - person Stan   schedule 19.12.2012open
файл и использовать кавычки вокруг его пути/имени, а во-вторых, вы можетеplay
псевдоним, упомянутый в строкеopen
. Пример Microsoft делает то же самое. Также нет большой разницы междуLPCSTR
илиLPSTR
, за этим просто стоит модификатор const. - person Stan   schedule 19.12.2012const char *
, вы можете получить его отstring
доc_str()
. К сожалению, вы игнорируете официальные и неофициальные инструкции. - person Stan   schedule 19.12.2012return string( buffer ).substr( 0, pos-1);
- person Mehmed   schedule 15.08.2015