/** * Overwrite the method to read bytes within the Ogg bitstream. * * @param integer $length The amount of bytes to read within the Ogg bitstream. * @return string * @throws Zend_Io_Exception if an I/O error occurs */ public function read($length) { $currentPageSize = $this->_pages[$this->_currentPageNumber]['page']->getPageSize(); if ($this->_currentPagePosition + $length >= $currentPageSize) { $buffer = parent::read($currentPageSize - $this->_currentPagePosition); parent::skip($this->_pages[++$this->_currentPageNumber]['page']->getHeaderSize()); return $buffer . parent::read($this->_currentPagePosition = $length - ($currentPageSize - $this->_currentPagePosition)); } else { $buffer = parent::read($length); $this->_currentPagePosition += $length; return $buffer; } }