使用SND_MEMORY在PlaySound中播放操纵音量级别

时间:2018-01-09 05:45:34

标签: c++ audio wav volume playsound

我遇到了播放wav文件的问题,该文件首先被读入BYTE阵列并修改它以降低其音量。我为实现它而制作的片段取自各种网络资源。

但是,当我通过Visual Studio 2013社区运行程序时,它运行良好。

但是当发布在Release x64模式下生成的可执行文件时,它会发出运行时错误,我听不到任何声音(也无法使用try-catch捕获)。

我希望我的可执行文件能够正常工作,但只有当我注释掉该行时才能正常工作 - > p [i] =(__ int8)((float)p [i] * fVolume); < - ,实际上是在操作音量级别。

我无法理解为什么exe不起作用,Visual Studio可以在Release x64模式下轻松运行它。

正在操纵WAV文件:https://drive.google.com/file/d/1i3DACTJxRCQQqRKBK_XL4msuw5p__kXg/view?usp=sharing 函数调用我正在使用:PlaySound_Volume(“right_10.wav”,0.235);

感谢您的关注!

In [ ]: distances = locations[locSequence[:-1], locSequence[1:]]
   ...: distances
Out[ ]: array([ 1.,  3.,  2.])

In [ ]: distances.sum()
Out[ ]: 6.0

1 个答案:

答案 0 :(得分:1)

由于ppFileBytes + 48,因此您无法在p或更高版本取消引用dwFileSize - 48
或者换句话说,pFileBytes指向dwFileSize个字节的第一个,但p指向dwFileSize - 48个字节的第一个。

调整循环边界。