wp_read_audio_metadata() WP 3.6.0

Отримує всі дані про аудіо файл з його міток ID3. Сюди входять усі доступні дані: формат, канали, бітрейт, розмір, MIMEтип, тривалість, рік, альбом, артист, коментар, картинка тощо.

Функція не визначена у зовнішній частині сайту (фронт-енд). Щоб вона там працювала, потрібно підключити файл:

if( ! is_admin() ) require_once ABSPATH . 'wp-admin/includes/media.php';

1 раз – 0.014777 сек
(гальмо) | 50000 разів – 1538.81 сек
(гальмо) |
PHP 7.0.5, WP 4.5

Хуків немає.

Повертає

Массив|false. Масив даних файлу, якщо його знайдено.

Використання

wp_read_audio_metadata( $file );
$file
(рядок) (обов’язковий)
Шлях до файлу. Потрібно вказувати абсолютний шлях сервера, а не URL-адресу.

Приклади

0

#1 Отримаємо всі дані аудіо файлу шляхом файлу

// У фронті, функція wp_read_audio_metadata() недоступна.
if( ! is_admin() ) require_once ABSPATH . 'wp-admin/includes/media.php';

$file = wp_get_upload_dir()['basedir'] . '/2016/04/Happy_Birthday.mp3'; // шлях до файлу

$ metadata = wp_read_audio_metadata ($ file);

print_r ($ metadata);

/* Виведе:

Array
(
	[dataformat] => mp3
	[channels] => 2
	[sample_rate] => 44100
	[bitrate] => 320000
	[channelmode] => stereo
	[bitrate_mode] => cbr
	[lossless] =>
	[encoder_options] => CBR320
	[compression_ratio] => 0.226757369615
	[fileformat] => mp3
	[filesize] => 342016
	[mime_type] => audio/mpeg
	[length] => 8
	[length_formatted] => 0:08
	[text] => Elsynor Elsy
	[artist] => Gregory House
	[album] => Original from TVShow
	[band] => Gregory House
	[title] => Happy Birthday
	[publisher] => FOX
	[year] => 2004
	[comment] => House MD - 01x06 The Socratic Method
	[genre] => Sound clip
	[image] => Array
		(
			[data] => ���� JFIF ��C ...дані файлу
			[mime] => image/jpeg
			[width] => 624
			[height] => 352
		)

)

*/
0

#2 Виведемо тривалість аудіо файлу за секунди

// У фронті, функція wp_read_audio_metadata() недоступна.
if( ! is_admin() ) require_once ABSPATH . 'wp-admin/includes/media.php';

$file = wp_get_upload_dir()['basedir'] . '/2016/04/Happy_Birthday.mp3'; // шлях до файлу

$ metadata = wp_read_audio_metadata ($ file);

echo 'Аудіо триває'. $metadata['length'] . 'сек.';

// Виведе: Аудіо триває 60 сек.

список змін

З версії 3.6.0Введено.

Код wp_read_audio_metadata() WP 6.0.2

function wp_read_audio_metadata( $file ) {
	if ( ! file_exists( $file ) ) {
		return false;
	}

	$metadata = array();

	if ( ! defined( 'GETID3_TEMP_DIR' ) ) {
		define( 'GETID3_TEMP_DIR', get_temp_dir() );
	}

	if ( ! class_exists( 'getID3', false ) ) {
		require ABSPATH. WPINC. '/ID3/getid3.php';
	}

	$id3 = новий getID3();
	/ / Required to get the 'created_timestamp' value.
	$id3->options_audiovideo_quicktime_ReturnAtomData = true; // phpcs:ignore WordPress.NamingConventions.ValidVariableName

	$ data = $ id3-> analyze ( $ file );

	if ( ! empty( $data['audio'] ) ) {
		unset( $data['audio']['streams'] );
		$metadata = $data['audio'];
	}

	if ( ! empty( $data['fileformat'] ) ) {
		$metadata['fileformat'] = $data['fileformat'];
	}

	if ( ! empty( $data['filesize'] ) ) {
		$metadata['filesize'] = (int) $data['filesize'];
	}

	if ( ! empty( $data['mime_type'] ) ) {
		$metadata['mime_type'] = $data['mime_type'];
	}

	if ( ! empty( $data['playtime_seconds'] ) ) {
		$metadata['length'] = (int) round( $data['playtime_seconds'] );
	}

	if ( ! empty( $data['playtime_string'] ) ) {
		$metadata['length_formatted'] = $data['playtime_string'];
	}

	if ( empty( $metadata['created_timestamp'] ) ) {
		$created_timestamp = wp_get_media_creation_timestamp($data);

		if ( false !== $created_timestamp ) {
			$metadata['created_timestamp'] = $created_timestamp;
		}
	}

	wp_add_id3_tag_data ($ metadata, $ data);

	return $metadata;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *