Simple2D-18(音乐播放器)使用 bass 音频库

 

BASS 简介


 

  BASS是一个在多个平台上用于软件的音频库。其目的是为开发人员提供功能强大且高效的示例流(MP3,MP2,MP1,OGG,WAV,AIFF),MOD 音乐(XM,IT,S3M,MOD ,MTM,UMX),MO3 音乐(MP3 / OGG压缩MOD)和录音功能。提供了 C / C ++,Delphi 和 Visual Basic API,适用于Android,iOS,Windows Store / Phone,WinCE 和 ARM Linux 平台。

  BASS 对于非商业用途是免费的。如果您是非商业实体(例如个人),并且您没有从您的产品(通过销售,广告等)赚钱,那么您可以免费使用BASS。

 

  你可以在这个链接 http://www.un4seen.com 下载 BASS:

 

  这次的播放器就是使用 BASS 播放音频文件,下载 BASS 后将文件 bass.lib、bass.dll 和 bass.h 拷贝到项目即可。

 

使用 BASS


 

  配置好并引入头文件 bass.h 后,通过以下代码播放音频文件:

 

        BASS_Init(-1, 44100, 0, 0, nullptr);

        HSTREAM stream = BASS_StreamCreateFile(FALSE, "filename", 0, 0, 0);
        BASS_ChannelPlay(stream, FALSE);

        /* 播放结束 */
        //BASS_StreamFree(stream);

 

 

  进度调节:

        /* 获取播放进度 */
        double pos = BASS_ChannelBytes2Seconds(stream, BASS_ChannelGetPosition(stream, BASS_POS_BYTE));

        /* 设置播放进度 */
        BASS_ChannelSetPosition(stream, BASS_ChannelSeconds2Bytes(stream, pos), BASS_POS_BYTE);

 

  音量调节:

        /* 设置 stream 音量,0 - 10000 */
        BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 200);

        /* 获取 stream 音量,0 - 10000 */
        BASS_GetConfig(BASS_CONFIG_GVOL_STREAM);

 

        /* 获取系统音量 */
        float volume = BASS_GetVolume();

        /* 设置系统音量 */
        BASS_SetVolume(volume);

 

  获取频谱数据:

        static float fft[128];
        BASS_ChannelGetData(stream, fft, BASS_DATA_FFT256);

 

  获取播放状态:

        DWORD result = BASS_ChannelIsActive(stream);
        switch ( result ) {
        case BASS_ACTIVE_PAUSED:  return PS_Paused;
        case BASS_ACTIVE_PLAYING: return PS_Playing;
        case BASS_ACTIVE_STOPPED: return PS_Stopped;
        }

  以上是这次播放器用到的 BASS API,详细内容可以查看 BASS 帮助文档,也可以阅读 BASS 演示源码。

 

BASS 封装


 

  将 BASS API 封装成一个类,从而管理所有的音频文件。可以设计一个单例类 SoundManager,以便在任何位置实现音频文件的管理。由于播放器不需要复杂的功能,所以将上面的 BASS API 进行添加到单例类中即可。

  详细内容请参考源码。

 

 

  源码下载:Simple2D-14.rar

转载于:https://www.cnblogs.com/ForEmail5/p/7230270.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值