V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a364378948
V2EX  ›  .NET

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

  •  
  •   a364378948 · 2018-02-24 10:21:26 +08:00 · 4499 次点击
    这是一个创建于 2496 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    你没试过,你怎么知道自己做不到?
    raphael008
        4
    raphael008  
       2018-02-24 15:51:18 +08:00
    噫,微信和别人聊天的语音难道可以导出的吗?
    keller
        5
    keller  
       2018-02-24 16:49:11 +08:00
    自己编译 speex_decode
    然后在 C#里面 cmd
    cmd.exe speex_decode_filepath input.speex output.mp3
    keller
        6
    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
        7
    JerryCha  
       2018-02-24 17:03:24 +08:00
    备选方案:读 C 代码理解过程然后自己造轮子
    JerryCha
        8
    JerryCha  
       2018-02-24 17:05:51 +08:00
    要不就看看 github 里有没有现成的 C#库,https://github.com/aijingsun6/NSpeex 不知道这个是不是你需要的
    a364378948
        9
    a364378948  
    OP
       2018-02-24 17:38:08 +08:00
    @keller 其实后面无论是调用 DLL 还是执行命令我都会的。。就是微信官方的解码库我生成 DLL 的过程中好多错误,但是不知道 C 如何修正错误。
    fgodt
        10
    fgodt  
       2018-02-24 21:45:24 +08:00
    你贴一下错误提示啊 不然有点难帮你,你先确定自己把 speex 的库编译出来 然后再去按照微信的例子编译自己 c#要调用的库
    a364378948
        11
    a364378948  
    OP
       2018-02-25 08:37:10 +08:00
    @fgodt http://cstsghsy.vhost4.cnvp.com.cn/1.png 错误图是这样的。我就是把微信提供的解码库文件放进去,然后方法定义一个 SpeexDecode 封装后供 C#调用。
    fgodt
        12
    fgodt  
       2018-02-25 11:32:26 +08:00
    你没有编译 speex 这个库,微信没有提供这个库的实现 你要去 speex 官网下载代码先编译出来再添加引用到你的项目
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:14 · PVG 15:14 · LAX 23:14 · JFK 02:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.