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

Posted 为了邮箱5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,适用于androidiosWindows Store / PhoneWinCE 和 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

以上是关于Simple2D-18(音乐播放器)使用 bass 音频库的主要内容,如果未能解决你的问题,请参考以下文章

Simple2D-14(音乐播放器)简介

带有 BASS 库的多扬声器选项

重磅!Future Bass之父Flume宣布回归!

Simple2D-19(音乐播放器)播放器的源码实现

使用 BASS 从 C# 播放 Spotify

HIVE RECORDS · 首发单曲《BASS BACK》正式上线