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();
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.
float GetDuration() const
Get the music duration.