Как вытащить обложку из аудиозаписи?

175
05 октября 2018, 14:30

Во Вконтакте есть аудиозаписи, которые отображаются с обложками:

Хочу сделать так же для плеера на своём сайте. Если кто-то загружает какую-то музыку, то по возможности отображать обложку. Но как это можно сделать? Изначально я планировал вытащить из мета-данных файла имя исполнителя и название песни, сделать поиск в гуглокартинках в формате имя_исполнителя название_трека album cover, и взять первую же картинку. Но ведь по такому запросу может отображаться, например, обложка какого-нибудь другого альбома этого же исполнителя. А мне нужна точность. Как можно реализовать такой механизм? В mp3-контейнере, как я понял, не хранятся данные ни об исполнителе, ни обложки альбомов.

Answer 1

Попробуйте использовать getid3

  <?php
  $Path="mp3 file path";
  $getID3 = new getID3;
  $OldThisFileInfo = $getID3->analyze($Path);
  if(isset($OldThisFileInfo['comments']['picture'][0])){
     $Image='data:'.$OldThisFileInfo['comments']['picture'][0]['image_mime'].';charset=utf-8;base64,'.base64_encode($OldThisFileInfo['comments']['picture'][0]['data']);
  }
  ?>
  <img id="FileImage" width="150" src="<?php echo @$Image;?>" height="150">

Этот код вставляем картинку в HTML в формате base64

READ ALSO
на PHP на сервере перестал выполняться shell_exec

на PHP на сервере перестал выполняться shell_exec

На сайте (на сервере) выполняется следующий php код (mysite/testphp):

160
Fatal error: Cannot use isset() on the result of an expression

Fatal error: Cannot use isset() on the result of an expression

Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in D:\openserver\OSPanel\domains\dgcom\vip_files\vip1

188
регулярка 0-9 и один +

регулярка 0-9 и один +

Каким образом указать, что знак + может быть только один и только в начале строки?

175