28#include <SFML/Audio/Music.hpp>
29#include <SFML/Audio/OpenAL.hpp>
30#include <SFML/Audio/SoundFile.hpp>
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());
120 return myFile && myFile->Restart();
127bool 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();
bool OpenFromMemory(const char *Data, std::size_t SizeInBytes)
Open a music file from memory (doesn't play it – call Play() for that).
Music(std::size_t BufferSize=44100)
Construct the music with a buffer size.
bool OpenFromFile(const std::string &Filename)
Open a music file (doesn't play it – call Play() for that).
float GetDuration() const
Get the music duration.
void Stop()
Stop playing the audio stream.
void Initialize(unsigned int ChannelsCount, unsigned int SampleRate)
Set the audio stream parameters, you must call it before Play().