Воспроизведение и остановка звукового файла MP3, MP2, MP1, OGG, WAV, AIFF при помощи библиотеки BASS на C++
Воспроизведение и остановка файла MP3, MP2, MP1, OGG, WAV, AIFF файлов, нам понадобится библиотека для аудио 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