예제 #1
0
 protected function _type($object)
 {
     $type = Type::guessExtension($object);
     $map = ['ogv' => 'ogg', 'oga' => 'ogg', 'jpg' => 'mjpeg'];
     return isset($map[$type]) ? $map[$type] : $type;
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 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);
 }