2012-07-10 79 views
1
exec ("C:/Lame/sox \"C:/1/2.wav\" -t wav \"C:/1/2.rev\" reverse"); 

使用该代码使用音频后期处理工具来反转声音文件。有一个输出,但该文件大约是它的大小的1/5,我无法播放它。基本上,它使一个文件,但它不是一个,如果我这样做在命令提示符下我会得到:PHP执行不会给出与cmd相同的结果

C:/Lame/sox "C:/1/2.wav" -t wav "C:/1/2.rev" reverse 

就这样,我得到了我想要的结果,我能玩REV文件。

任何人都知道为什么会发生这种情况?

+0

你用同一个用户执行它们吗? – 2012-07-10 15:13:54

+0

是的。一切正常。我可以执行其他命令,例如: exec(“C:/ Lame/sox \”C:/1/2.wav \“-t wav \”C:/1/2.rev \“pitch 1000”) ; 而且这将工作。只有这个相反的问题是它的问题,但它在cmd中起作用。 – Dragonfly 2012-07-10 15:42:13

+0

您是否尝试将数组作为输出? http://www.php.net/manual/en/function.exec.php – 2012-07-10 16:22:36

回答

0

发现问题。这是一个许可问题。

所有其他后处理命令的工作原理,因为它写入该文件夹。 Reverse在当前用户没有写入权限的另一个文件夹中创建临时文件,为此它创建了一个小文件,因为它试图在以后从不存在的文件中读取文件。

相关问题