Added the trunk/branches/tags directories at repository root, and moved previous root into trunk/
git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/trunk@1002 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
commit
2f524481c1
974 changed files with 295448 additions and 0 deletions
49
python/samples/sound_stream.py
Executable file
49
python/samples/sound_stream.py
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
from PySFML import sf
|
||||
|
||||
class MyCustomStream(sf.SoundStream):
|
||||
|
||||
def Open(self, Filename):
|
||||
# Load the sound data into a sound buffer
|
||||
self.SoundData = sf.SoundBuffer()
|
||||
if not self.SoundData.LoadFromFile(Filename):
|
||||
return False
|
||||
# Initialize the stream with the sound parameters
|
||||
self.Initialize(self.SoundData.GetChannelsCount(), self.SoundData.GetSampleRate())
|
||||
# Copy the audio samples into our internal array
|
||||
self.myBuffer = self.SoundData.GetSamples()
|
||||
return True
|
||||
|
||||
def OnStart(self):
|
||||
self.myOffset = 0
|
||||
self.myBufferSize = 80000
|
||||
return True
|
||||
|
||||
def OnGetData(self):
|
||||
# Check if there is enough data to stream
|
||||
if self.myOffset > len(self.myBuffer):
|
||||
# Returning something else than a string means that we want to stop playing the stream
|
||||
return False
|
||||
# Data contains the string of samples we will return
|
||||
if self.myOffset + self.myBufferSize >= len(self.myBuffer):
|
||||
print "End of audio data reached"
|
||||
Data = self.myBuffer[self.myOffset:]
|
||||
else:
|
||||
Data = self.myBuffer[self.myOffset:self.myOffset+self.myBufferSize]
|
||||
# Update the offset
|
||||
self.myOffset = self.myBufferSize + self.myOffset
|
||||
return Data
|
||||
|
||||
def Main():
|
||||
Stream = MyCustomStream()
|
||||
Stream.Open("./data/fart.wav")
|
||||
Stream.Play()
|
||||
print "Playing 5 seconds of audio data..."
|
||||
sf.Sleep(5)
|
||||
Stream.Stop()
|
||||
print "Press enter to exit..."
|
||||
raw_input()
|
||||
|
||||
Main()
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue