如果路径太长,mciSendString将无法播放音频文件 [英] mciSendString won't play an audio file if path is too long

查看:79
本文介绍了如果路径太长,mciSendString将无法播放音频文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当文件的路径+文件名非常长时,我注意到了

When the path+filename of a file is really long, I've noticed that

PlaySound(fName.c_str(), NULL, SND_ASYNC);

有效,但无效

mciSendString((L"open \"" + fName + L"\" type waveaudio alias sample").c_str(), NULL, 0, NULL);
mciSendString(L"play sample", NULL, 0, NULL);

命令失败的示例:

打开"C:\ qisdjqldlkjsqdjqdqjslkdjqlksjlkdjqsldjlqjsdjqdksq \ dajdjqjdlqjdlkjazejoizajoijoifjoifjoifjdsfjsfszjfoijdsjfoijdsoifoidsjfojdsofjdsoijfoisjfoijdsjpjjjjjjjjjjjjjjjjjjdjjjjjjjjjjjjjjjjjjwjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjwjjjjjjjjjwjjjjjjjjjwjjjjjjjjwjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj音符."

open "C:\qisdjqldlkjsqdjqdqjslkdjqlksjlkdjqsldjlqjsdjqdksq\dajdjqjdlqjdlkjazejoizajoijoifjoifjdsfjsfszjfoijdsjfoijdsoifoidsjfojdsofjdsoijfoisjfoijoisdjfosjfqsd\Windows Critical Stop.wav" type waveaudio alias sample

但是:

  • 我真的需要mciSendString而不是PlaySound(),因为PlaySound()不会播放某些文件(48 khz音频文件,有时是24位文件等)

  • I really need mciSendString instead of PlaySound(), because PlaySound() doesn't play certain files (48 khz audio files, sometimes 24-bit files, etc.)

我需要能够播放路径很长的音频文件,因为我的应用程序的最终用户可能会有这样的文件

I need to be able to play audio files with potentially long paths because the end user of my app might have such files

如何使mciSendString接受长文件名?

注意:

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆