/** * @covers MediaVorus\MediaVorus::guessFromMimeType */ public function testGuessFromMimeType() { $media = $this->object->guess(__DIR__ . '/../../files/ExifTool.jpg'); $this->assertInstanceOf('\\MediaVorus\\Media\\Image', $media); $media = $this->object->guess(__DIR__ . '/../../files/CanonRaw.cr2'); $this->assertInstanceOf('\\MediaVorus\\Media\\Image', $media); $media = $this->object->guess(__DIR__ . '/../../files/APE.ape'); $this->assertInstanceOf('\\MediaVorus\\Media\\Audio', $media); $media = $this->object->guess(__DIR__ . '/../../files/PDF.pdf'); $this->assertInstanceOf('\\MediaVorus\\Media\\Document', $media); $media = $this->object->guess(__DIR__ . '/../../files/ZIP.gz'); $this->assertInstanceOf('\\MediaVorus\\Media\\DefaultMedia', $media); $media = $this->object->guess(__DIR__ . '/../../files/Flash.swf'); $this->assertInstanceOf('\\MediaVorus\\Media\\Flash', $media); $media = $this->object->guess(__DIR__ . '/../../files/Test.ogv'); $this->assertInstanceOf('\\MediaVorus\\Media\\Video', $media); }
/** * Read the technical datas of the file. * Returns an empty array for non physical present files * * @return array An array of technical datas Key/values */ public function readTechnicalDatas(MediaVorus $mediavorus) { if (!$this->is_physically_present()) { return []; } $media = $mediavorus->guess($this->get_pathfile()); $datas = []; $methods = [self::TC_DATA_WIDTH => 'getWidth', self::TC_DATA_HEIGHT => 'getHeight', self::TC_DATA_FOCALLENGTH => 'getFocalLength', self::TC_DATA_CHANNELS => 'getChannels', self::TC_DATA_COLORDEPTH => 'getColorDepth', self::TC_DATA_CAMERAMODEL => 'getCameraModel', self::TC_DATA_FLASHFIRED => 'getFlashFired', self::TC_DATA_APERTURE => 'getAperture', self::TC_DATA_SHUTTERSPEED => 'getShutterSpeed', self::TC_DATA_HYPERFOCALDISTANCE => 'getHyperfocalDistance', self::TC_DATA_ISO => 'getISO', self::TC_DATA_LIGHTVALUE => 'getLightValue', self::TC_DATA_COLORSPACE => 'getColorSpace', self::TC_DATA_DURATION => 'getDuration', self::TC_DATA_FRAMERATE => 'getFrameRate', self::TC_DATA_AUDIOSAMPLERATE => 'getAudioSampleRate', self::TC_DATA_VIDEOCODEC => 'getVideoCodec', self::TC_DATA_AUDIOCODEC => 'getAudioCodec', self::TC_DATA_ORIENTATION => 'getOrientation']; foreach ($methods as $tc_name => $method) { if (method_exists($media, $method)) { $result = call_user_func([$media, $method]); if (null !== $result) { $datas[$tc_name] = $result; } } } $datas[self::TC_DATA_LONGITUDE] = $media->getLongitude(); $datas[self::TC_DATA_LATITUDE] = $media->getLatitude(); $datas[self::TC_DATA_MIMETYPE] = $media->getFile()->getMimeType(); $datas[self::TC_DATA_FILESIZE] = $media->getFile()->getSize(); unset($media); return $datas; }