| 432 | self._ssnd_seek_needed = 1 |
| 433 | |
| 434 | def readframes(self, nframes): |
| 435 | if self._ssnd_seek_needed: |
| 436 | self._ssnd_chunk.seek(0) |
| 437 | dummy = self._ssnd_chunk.read(8) |
| 438 | pos = self._soundpos * self._framesize |
| 439 | if pos: |
| 440 | self._ssnd_chunk.seek(pos + 8) |
| 441 | self._ssnd_seek_needed = 0 |
| 442 | if nframes == 0: |
| 443 | return b'' |
| 444 | data = self._ssnd_chunk.read(nframes * self._framesize) |
| 445 | if self._convert and data: |
| 446 | data = self._convert(data) |
| 447 | self._soundpos = self._soundpos + len(data) // (self._nchannels |
| 448 | * self._sampwidth) |
| 449 | return data |
| 450 | |
| 451 | # |
| 452 | # Internal methods. |