请教: C#微信 speex 如何转码成可播放音频

2018-02-24 10:21:26 +08:00
 a364378948

微信录音高清晰接口下载的文件是 speex 格式,提供的解码库是 C 的代码。不知道在.net 里如何调用。,,有大神成功转过吗。

4294 次点击
所在节点    .NET
12 条回复
noli
2018-02-24 10:31:11 +08:00
a364378948
2018-02-24 10:40:19 +08:00
@noli 老哥,你的意思就是把微信的 C 封装成 DLL 让 VS 动态调用是吧。。但是微信的 C 的代码如何封装我都不知道,,真的不懂 C。。。
noli
2018-02-24 11:10:37 +08:00
怎么把 C 代码编译成 DLL 或者别的什么的,是一件即使不会写代码的人都能做到的事情吧。
基本上就是按步骤复制粘贴。

你没试过,你怎么知道自己做不到?
raphael008
2018-02-24 15:51:18 +08:00
噫,微信和别人聊天的语音难道可以导出的吗?
keller
2018-02-24 16:49:11 +08:00
自己编译 speex_decode
然后在 C#里面 cmd
cmd.exe speex_decode_filepath input.speex output.mp3
keller
2018-02-24 16:53:37 +08:00
不懂 C# 看了一下 应该可以这样

System.Diagnostics.Process exep = new System.Diagnostics.Process();
exep.StartInfo.FileName = speex_decode.exe;
exep.StartInfo.Arguments = "input.speex output.mp3";
exep.StartInfo.CreateNoWindow = true;
exep.StartInfo.UseShellExecute = false;
exep.Start();
exep.WaitForExit();
JerryCha
2018-02-24 17:03:24 +08:00
备选方案:读 C 代码理解过程然后自己造轮子
JerryCha
2018-02-24 17:05:51 +08:00
要不就看看 github 里有没有现成的 C#库,https://github.com/aijingsun6/NSpeex 不知道这个是不是你需要的
a364378948
2018-02-24 17:38:08 +08:00
@keller 其实后面无论是调用 DLL 还是执行命令我都会的。。就是微信官方的解码库我生成 DLL 的过程中好多错误,但是不知道 C 如何修正错误。
fgodt
2018-02-24 21:45:24 +08:00
你贴一下错误提示啊 不然有点难帮你,你先确定自己把 speex 的库编译出来 然后再去按照微信的例子编译自己 c#要调用的库
a364378948
2018-02-25 08:37:10 +08:00
@fgodt http://cstsghsy.vhost4.cnvp.com.cn/1.png 错误图是这样的。我就是把微信提供的解码库文件放进去,然后方法定义一个 SpeexDecode 封装后供 C#调用。
fgodt
2018-02-25 11:32:26 +08:00
你没有编译 speex 这个库,微信没有提供这个库的实现 你要去 speex 官网下载代码先编译出来再添加引用到你的项目

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX