Воспроизведение и остановка звукового файла MP3, MP2, MP1, OGG, WAV, AIFF при помощи библиотеки BASS на C++

 

Воспроизведение и остановка файла MP3, MP2, MP1, OGG, WAV, AIFF файлов, нам понадобится библиотека для аудио BASS. Внизу ссылка для скачивания их из облака.

Скачать архив файлов BASS

  

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "bass.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//Добавляем дескрипторы
HSAMPLE smp;
HSTREAM str;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 BASS_Init(-1, 44100, BASS_DEVICE_3D, 0, NULL); //Инициализация звукового потока
 str=BASS_StreamCreateFile(FALSE, PChar("\\sound.mp3"), 0, 0, 0); //Создаем поток str. Расположение нашего MP3 файла
 BASS_ChannelPlay(str, False); //Воспроизвести наше звуковой поток str
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
BASS_ChannelStop(str); //Остановка
BASS_SampleFree (smp); //Чистим ресурс
}
//---------------------------------------------------------------------------

Unit1.h

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TButton *Button1;
	TButton *Button2;
	void __fastcall Button1Click(TObject *Sender);
	void __fastcall Button2Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif