protected function _type($object) { $type = Type::guessExtension($object); $map = ['ogv' => 'ogg', 'oga' => 'ogg', 'jpg' => 'mjpeg']; return isset($map[$type]) ? $map[$type] : $type; }
/** * Convert the track using the best possible means * @param string $filename The new filename * @return object New Media Object */ public function convertMultiple($newFilename, $codecs = array()) { if (empty($codecs)) { return false; } $intermediary = $this->createIntermediaries(); //generate wav form png if (isset($this->image)) { $waveform = new \Jasny\Audio\Waveform($intermediary['wav']['path'], array("width" => 700)); $waveform->save("png", $this->image); } //generate final file foreach ($codecs as $codec) { $parts = pathinfo($newFilename); $base = dirname($newFilename); $file = $base . "/" . $parts['filename'] . "." . $codec; $extension = Type::guessExtension($file); if (empty($extension) || $extension == "bin") { $extension = $codec; } $mime = Type::guessType($file); foreach ($this->getDrivers() as $driver) { $class = "Media\\Driver\\Drivers\\" . $driver; if ($driver == "AsteriskShell") { $i = $intermediary['sln']; } else { $i = $intermediary['wav']; } if ($class::installed() && $class::isCodecSupported($extension, "out")) { $driver = new $class($i['path'], $i['extension'], $i['mime']); $driver->convert($file, $extension, $mime); if (!file_exists($file)) { throw new \Exception("File was not converted"); } break; } } } if (!empty($intermediary['wav']['path']) && file_exists($intermediary['wav']['path'])) { unlink($intermediary['wav']['path']); } if (!empty($intermediary['sln']['path']) && file_exists($intermediary['sln']['path'])) { unlink($intermediary['sln']['path']); } unset($intermediary); return file_exists($newFilename); }
public function testGuessExtensionResource() { $handleA = fopen("{$this->_files}/application_pdf.pdf", 'r'); $handleB = fopen('php://temp', 'r+'); stream_copy_to_stream($handleA, $handleB); $this->assertEquals('pdf', Type::guessExtension($handleA)); $this->assertEquals('pdf', Type::guessExtension($handleB)); fclose($handleA); fclose($handleB); }