28 #include <SFML/Audio/Music.hpp> 29 #include <SFML/Audio/OpenAL.hpp> 30 #include <SFML/Audio/SoundFile.hpp> 43 mySamples (BufferSize)
71 myFile = priv::SoundFile::CreateRead(Filename);
74 std::cerr <<
"Failed to open \"" << Filename <<
"\" for reading" << std::endl;
79 myDuration =
static_cast<float>(myFile->GetSamplesCount()) / myFile->GetSampleRate() / myFile->GetChannelsCount();
82 Initialize(myFile->GetChannelsCount(), myFile->GetSampleRate());
98 myFile = priv::SoundFile::CreateRead(Data, SizeInBytes);
101 std::cerr <<
"Failed to open music from memory for reading" << std::endl;
106 myDuration =
static_cast<float>(myFile->GetSamplesCount()) / myFile->GetSampleRate();
109 Initialize(myFile->GetChannelsCount(), myFile->GetSampleRate());
118 bool Music::OnStart()
120 return myFile && myFile->Restart();
127 bool Music::OnGetData(SoundStream::Chunk& Data)
132 Data.Samples = &mySamples[0];
133 Data.NbSamples = myFile->Read(&mySamples[0], mySamples.size());
136 return Data.NbSamples == mySamples.size();
float GetDuration() const
Get the music duration.
bool OpenFromFile(const std::string &Filename)
Open a music file (doesn't play it – call Play() for that)
Music(std::size_t BufferSize=44100)
Construct the music with a buffer size.
bool OpenFromMemory(const char *Data, std::size_t SizeInBytes)
Open a music file from memory (doesn't play it – call Play() for that)
void Initialize(unsigned int ChannelsCount, unsigned int SampleRate)
Set the audio stream parameters, you must call it before Play()
void Stop()
Stop playing the audio stream.