我想将很多音频从其源格式转码为PCM,而无需重新采样或调整样本大小。我想如果Windows Media Player可以播放该文件,并且它不使用传统的ACM编解码器,则必须使用DirectSound才能这样做(这是在Windows XP和Windows Server 2k3上)。那么是否有可能从C#访问DirectSound并执行此操作?我试过在网上搜索,但所有的例子都是关于播放的,我没有兴趣去做。是否有可能使用DirectSound在C#中转码音频?
2
A
回答
1
DirectSound是一个音频播放API,您的意思是DirectShow。 Windows Media Player确实使用DirectShow播放音频文件。从理论上讲,您需要做的只是构建与媒体播放器使用的播放图形相同的播放图形,但使用.WAV写入器过滤器替换音频驱动程序。
由于DirectShow图形对象实际上是从C++调用的,但是有一组好的interop定义,您可以在C#中执行此操作,这在C++代码中更容易实现。
因为在.NET中对DirectShow进行了严重的黑客攻击,所以有http://directshownet.sourceforge.net/,但这可能是针对您的问题的矫枉过正。
如果您还没有,我会建议您获取GraphEdit的副本。您可以使用它以交互方式“直接”显示直接显示图形。将文件放入图片。然后删除最后的过滤器并将其替换为文件写入器过滤器。
您将遇到的一个问题是,默认的DirectShow过滤器组中没有.WAV文件写入器过滤器,您将不得不查找或写入一个。
如果你只是想转换文件,并且不太关心如何使用DirectShow编写代码,我建议你只需要获得Sound Forge(甚至可能是演示版本)的副本。它有一种脚本语言(C#,vb),可用于批量处理大多数音频文件格式。
0
看看CodeProject关于这里的音频转换和here这篇文章。
1
转换为WAV可以使用SoX(Sound eXchange,http://sox.sourceforge.net/)从Windows命令行完成。您可以编写一个批处理文件或一个C#应用程序,该应用程序使用正确的属性调用SoX。我不确定WinAMP的功能是如何工作的,但它也有内置的文件写入器输出选项。您可以将整个播放列表串流成波形文件。
相关问题
- 1. 是否有可能在iOS中使用Codename One录制音频?
- 2. 是否有可能使用OpenCV录制音频
- 3. 是否有可能在vb.net代码中使用C++类?
- 4. 是否有可能在C代码中使用log4cplus?
- 5. 是否有可能在ios中将直播流式音频转换为文本
- 6. 音频转码使用xuggler
- 7. 我应该为我的音频项目使用DirectSound还是WASAPI?
- 8. 是否有可能改变音频文件的播放音高
- 9. 是否有可能在没有音频源的情况下使用CamcorderProfile?
- 10. 是否有可能在Android中将音频合并到视频中?
- 11. 是否有可能使用html5将MediaStream转换为视频blob
- 12. 是否有可能显示在Android的音频meassage
- 13. 是否有可能在C#中生成复杂的音调?
- 14. 在C++中使用音频
- 15. 音频转码
- 16. iPhone SDK。是否有可能使用AVURLlAsset/AVMutableComposition在AVplayer中旋转视频?
- 17. 是否可以在JavaScript中使用浏览器访问音频?
- 18. 是否有任何音频/声音NPAPI插件可用?
- 19. 是否有可能的NSString转换为纯目标C代码
- 20. 是否有可能#include在C++类中?
- 21. 是否有可能在c#中“链”EventHandlers?
- 22. 是否有可能查看mp4的音频波形
- 23. 是否有可能与deezer javascript sdk一起使用web音频api?
- 24. 在iOS上转码音频
- 25. 转码音频和视频
- 26. 是否有可能使用python编译c代码?
- 27. 使用DirectSound设置不同的音频输出
- 28. DirectSound程序员的iOS音频 - 使用什么?
- 29. C++ - 在EAX中使用DirectSound或XAudio2
- 30. 音频转换C#