mingw吧 关注:1,423贴子:4,658
  • 10回复贴,共1

[原创教程]mingw64调用bass库

取消只看楼主收藏回复

BASS音频库是一款对非商业用户免费的音频处理类库。功能强大,支持几乎所有音频的解码编码等处理。以及强大的扩展功能!
foobar,aimp3,千千静听.这些知名音频软件都有用到bass库
以前观注这个东西的时候吧主还不会编程,那时候bass库还不能编译64位程序.
这两天又逛了一下bass网,发现更新了~
能够使用bass库做一个自己喜欢的小播放器本就是吧主学习程序的初衷之一


IP属地:江苏1楼2018-01-16 10:24回复
    BASS音频库官网http://www.un4seen.com/
    下载bass24.zip
    以后可能会有不同版本,参考图
    注意win32只的不是32位编程.而是习惯性的说法,包括了32/64位


    IP属地:江苏2楼2018-01-16 10:28
    回复
      解压后进入bass24的c目录,我的是这样的C:\downloads\bass24\c
      大家可以看到有写好的makefile,我记的这东西以前默认是用vc编译的,现在终于可以mingw直接使用了


      IP属地:江苏3楼2018-01-16 10:33
      回复
        在原C:\downloads\bass24\c\bin目录下有编译好的执行文件,我们全删掉.这都是32位程序,我们可是要搞64位编译的!
        先用C:\downloads\bass24\c\x64\bass.lib这个文件替换掉C:\downloads\bass24\c\bass.lib,因为这个要被替换掉的是个32位的lib文件.
        然后打开吧集成包的npMingw64\ConEmu\ConEmu64.exe命令台,当然你用配置好变量环境的cmd也可以
        命令行进入C:\downloads\bass24\c,如图


        IP属地:江苏4楼2018-01-16 10:38
        回复
          键入make不一会儿在C:\downloads\bass24\c\bin目录中生成了所有demo的可执行程序
          复制C:\downloads\bass24\x64\bass.dll这个文件放在C:\downloads\bass24\c\bin目录,否则运行时会提示缺少dll文件.
          大功告成,亲个嘴儿


          IP属地:江苏5楼2018-01-16 10:42
          回复
            最后随意测试下
            随便点击了个basstest.exe运行如下,先add增加一首歌,然后选中,最后play.播放正常


            IP属地:江苏6楼2018-01-16 10:44
            回复
              不能完,我们还应该分析一下make是怎么编译执行程序的
              我们可以用make>01.txt把编译结果全写在01.txt文本文件中留着慢慢分析
              看下第一个程序的编译内容
              make -C 3dtest
              make[1]: Entering directory 'C:/downloads/bass24/c/3dtest'
              //先用windres生成了obj文件rsrc.obj
              windres -i 3dtest.rc -o rsrc.obj
              //好了开始编译了.注意rsrc.obj ..\bass.lib这两个文件要和源文件链接在一起
              //-lcomdlg32 -lcomctl32 -lgdi32这几个参数是不能少的,这也是你以后编译bass的关键参数-mwindows就不说了
              gcc -Os -I.. -mwindows 3dtest.c rsrc.obj ..\bass.lib -lcomdlg32 -lcomctl32 -lgdi32 -o ..\bin\3dtest.exe
              //编译后删除掉obj无用文件
              del rsrc.obj
              基本上成功编译一堆demo后我们的makefile水平都会大涨,前题你要把作者的makefile仔细看看人家咋写的


              IP属地:江苏7楼2018-01-16 11:15
              回复
                补充一点.x64位平台的windres如果想生成32位的资源文件
                比如楼上的命令中
                windres -i 3dtest.rc -o rsrc.obj改成
                $(RES) -i $*.rc -F pe-i386 -o rsrc.obj
                [-F pe-i386]这个命令是生成32位的关键哦!


                IP属地:江苏8楼2018-01-16 11:53
                收起回复
                  终于有时间开始学c了.搞了两天,bass库的基本播放和扩展格式支持基本上搞清楚了
                  共享代码:
                  #include <stdbool.h>
                  #include "bass.h"
                  int plugin()
                  {
                  //读取插件;
                  BASS_PluginLoad("bass_ape.dll",0); // plugin loaded...
                  return 0;
                  }
                  int play(char *soundfile)
                  {
                  DWORD TestSound;
                  //初始化(启用设备-1表示默认,采样率,效果参数,窗口句柄,0表示使用默认数据初始化DirectSound)
                  BASS_Init(-1, 44100, 0, 0, 0);
                  plugin();
                  //是否从内存中加载,文件路径,起始位置,终止位置,是否循环播放
                  TestSound = BASS_StreamCreateFile(FALSE, soundfile, 0, 0, 0);
                  BASS_ChannelPlay(TestSound,true);
                  while (BASS_ChannelIsActive(TestSound));
                  BASS_Free();
                  return 0;
                  }
                  int main(int argc,char **argv)
                  {
                  play(argv[1]);
                  return 0;
                  }


                  IP属地:江苏9楼2018-01-20 18:55
                  回复
                    我的fmp命令行播放器终于可以开始第三版了.这一版bass的基本上可以支持目前市面上所有的音乐格式了,


                    IP属地:江苏10楼2018-01-20 18:57
                    回复
                      在集成包的C:\npMingw64\ConEmu\bin内有fmp3.c
                      是我做写的一个命令行播放音乐小程序,供bass入门实际参考,主播放函数仅最后一段


                      IP属地:江苏11楼2018-02-04 15:36
                      回复