Форум → Программирование → PHP для идиотов → Посоветуйте, какой музыкальный плеер установить на сайт
Посоветуйте, какой музыкальный плеер установить на сайт
Страницы: ← Следующая страница →
-
9 июня 2011 г. 17:13, спустя 4 минуты 15 секунд
можешь свой написать. минут 10 уйдет. на флеше. крякнутом. и разукрасить как хочешь. :) я бы так поступилС возвращением, Пiха! hyperoff.ru - качественный хостинг php -
9 июня 2011 г. 17:34, спустя 20 минут 44 секунды
Я во шлэше не шарю, так что нужен готовый )))from TRIAL with LOVE -
9 июня 2011 г. 19:15, спустя 1 час 41 минуту 2 секунды
я этого юзал недавно - http://www.longtailvideo.com/players/
дружит с жс, гуттаперчив, легко на него рисуются шаблоны… главное маны покурить и быстро разберешься))Высокоуровневое абстрактное говно -
-
10 июня 2011 г. 15:37, спустя 18 часов 45 минут 38 секунд
С плеером разобрался, спасибо.
Теперь такой вопрос возник - Как изменить битрейт при загрузке музыки на сайт, а то когда 320 уж больно много весит.
Нашел вот такую штуку//файл, который конвертим
$input_file="music.mp3";
//требуемый битрейт
$bit=64;
//куда сохранить выходной файл
$output_file="out.mp3";
//выполняем команду
exec("lame '".escapeshellcmd($input_file)."' -b $bit –mp3input '".escapeshellcmd($output_file)."' ");
Для этого этот самый Lame нужно на сервере установить.
Вопрос: что скажете на счет этого способа и можно ли еще как-то это сделать?from TRIAL with LOVE -
10 июня 2011 г. 17:47, спустя 2 часа 9 минут 36 секунд
Установили мне это дело на хостинге.
Скрипт даже отработал 1 раз но больше работать отказывается. Никто не подскажет в чем может быть дело? И можно как-то следить за выполнением или ошибки где-нибудь посмотреть почему работать перестал?from TRIAL with LOVE -
-
15 июня 2011 г. 16:04, спустя 4 дня 22 часа 2 минуты
С этой проблемой разобрался. Оказалось внимательнее надо за копи-пастом следить, а то начальный и конечный файл были одинаковыми вот ничего и не работало )))
Щас столкнулся вот с какой проблемой. Нашел функцию которая из файла выдергивает всю инфу о песне.function readframe($file) {
global $mp3, $id3tag;
if (! ($f = fopen($file, 'rb')) ) die("Unable to open " . $file);
$mp3['filesize'] = filesize($file);
do {
while (fread($f,1) != Chr(255)) { // Find the first frame
if (feof($f)) die( "No mpeg frame found") ;
}
fseek($f, ftell($f) - 1); // back up one byte
$frameoffset = ftell($f);
$r = fread($f, 4);
$bits = sprintf("%'08b%'08b%'08b%'08b", ord($r{0}), ord($r{1}), ord($r{2}), ord($r{3}));
}
while (!$bits[8] and !$bits[9] and !$bits[10]); // 1st 8 bits true from the while
// Detect VBR header
if ($bits[11] == 0) {
if (($bits[24] == 1) && ($bits[25] == 1)) {
$vbroffset = 9; // MPEG 2.5 Mono
} else {
$vbroffset = 17; // MPEG 2.5 Stereo
}
} else if ($bits[12] == 0) {
if (($bits[24] == 1) && ($bits[25] == 1)) {
$vbroffset = 9; // MPEG 2 Mono
} else {
$vbroffset = 17; // MPEG 2 Stereo
}
} else {
if (($bits[24] == 1) && ($bits[25] == 1)) {
$vbroffset = 17; // MPEG 1 Mono
} else {
$vbroffset = 32; // MPEG 1 Stereo
}
}
fseek($f, ftell($f) + $vbroffset);
$r = fread($f, 4);
switch ($r) {
case 'Xing':
$mp3['encoding_type'] = 'VBR';
case 'VBRI':
default:
if ($vbroffset != 32) {
// VBRI Header is fixed after 32 bytes, so maybe we are looking at the wrong place.
fseek($f, ftell($f) + 32 - $vbroffset);
$r = fread($f, 4);
if ($r != 'VBRI') {
$mp3['encoding_type'] = 'CBR';
break;
}
} else {
$mp3['encoding_type'] = 'CBR';
break;
}
$mp3['encoding_type'] = 'VBR';
}
fclose($f);
if ($bits[11] == 0) {
$mp3['mpeg_ver'] = "2.5";
$bitrates = array(
'1' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0),
'2' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0),
'3' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0),
);
} else if ($bits[12] == 0) {
$mp3['mpeg_ver'] = "2";
$bitrates = array(
'1' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0),
'2' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0),
'3' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0),
);
} else {
$mp3['mpeg_ver'] = "1";
$bitrates = array(
'1' => array(0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0),
'2' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0),
'3' => array(0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0),
);
}
$layer = array(
array(0,3),
array(2,1),
);
$mp3['layer'] = $layer[$bits[13]][$bits[14]];
if ($bits[15] == 0) {
// It's backwards, if the bit is not set then it is protected.
$mp3['crc'] = true;
}
$bitrate = 0;
if ($bits[16] == 1) $bitrate += 8;
if ($bits[17] == 1) $bitrate += 4;
if ($bits[18] == 1) $bitrate += 2;
if ($bits[19] == 1) $bitrate += 1;
$mp3['bitrate'] = $bitrates[$mp3['layer']][$bitrate];
$frequency = array(
'1' => array(
'0' => array(44100, 48000),
'1' => array(32000, 0),
),
'2' => array(
'0' => array(22050, 24000),
'1' => array(16000, 0),
),
'2.5' => array(
'0' => array(11025, 12000),
'1' => array(8000, 0),
),
);
$mp3['frequency'] = $frequency[$mp3['mpeg_ver']][$bits[20]][$bits[21]];
$mode = array(
array('Stereo', 'Joint Stereo'),
array('Dual Channel', 'Mono'),
);
$mp3['mode'] = $mode[$bits[24]][$bits[25]];
$samplesperframe = array(
'1' => array(
'1' => 384,
'2' => 1152,
'3' => 1152
),
'2' => array(
'1' => 384,
'2' => 1152,
'3' => 576
),
'2.5' => array(
'1' => 384,
'2' => 1152,
'3' => 576
),
);
$mp3['samples_per_frame'] = $samplesperframe[$mp3['mpeg_ver']][$mp3['layer']];
if ($mp3['encoding_type'] != 'VBR') {
if ($mp3['bitrate'] == 0) {
$s = -1;
} else {
$s = ((8*filesize($file))/1000) / $mp3['bitrate'];
}
$mp3['length'] = sprintf('%02d:%02d',floor($s/60),floor($s-(floor($s/60)*60)));
$mp3['lengthh'] = sprintf('%02d:%02d:%02d',floor($s/3600),floor($s/60),floor($s-(floor($s/60)*60)));
$mp3['lengths'] = (int)$s;
$mp3['samples'] = ceil($mp3['lengths'] * $mp3['frequency']);
if(0 != $mp3['samples_per_frame']) {
$mp3['frames'] = ceil($mp3['samples'] / $mp3['samples_per_frame']);
} else {
$mp3['frames'] = 0;
}
$mp3['musicsize'] = ceil($mp3['lengths'] * $mp3['bitrate'] * 1000 / 8);
} else {
$mp3['samples'] = $mp3['samples_per_frame'] * $mp3['frames'];
$s = $mp3['samples'] / $mp3['frequency'];
$mp3['length'] = sprintf('%02d:%02d',floor($s/60),floor($s-(floor($s/60)*60)));
$mp3['lengthh'] = sprintf('%02d:%02d:%02d',floor($s/3600),floor($s/60),floor($s-(floor($s/60)*60)));
$mp3['lengths'] = (int)$s;
$mp3['bitrate'] = (int)(($mp3['musicsize'] / $s) * 8 / 1000);
}
$f = fopen($file, 'rb');
rewind($f);
fseek($f, -128, SEEK_END);
$tmp = fread($f,128);
if ($tmp[125] == Chr(0) and $tmp[126] != Chr(0)) {
// ID3 v1.1
$format = 'a3TAG/a30NAME/a30ARTISTS/a30ALBUM/a4YEAR/a28COMMENT/x1/C1TRACK/C1GENRENO';
} else {
// ID3 v1
$format = 'a3TAG/a30NAME/a30ARTISTS/a30ALBUM/a4YEAR/a30COMMENT/C1GENRENO';
}
$id3tag = unpack($format, $tmp);
return $mp3;
return $id3tag;
}
Всё отлично работает, но вот почему то реальная длительность песни не совпадает с данными. Никто не сталкивался с таким? Показано что песня на 8 минут а она реально 4. Может скрипт не совсем верные данные берет или не оттуда. Мне бы точное время воспроизведения получать. Кто что знает отпишитесь плиз.from TRIAL with LOVE -
15 июня 2011 г. 16:19, спустя 15 минут 28 секунд
отличная функция :-)
я писал подобную для делания скриншотов флв файлов не скачивая файл))) недописал правда пока, задача другая появилась)Сапожник без сапог -
15 июня 2011 г. 16:29, спустя 9 минут 28 секунд
Отличная да вот только приверает с длительностью звучания. Щас смотрю вообще отрицательное значение показала для файла.
Если у кого есть еще какие варианты особо не громоздкие. Пока нужно только длительность дергать. Остальное и эта делает неплохо. Хотя у народа с кодировками проблемы иногда возникают.from TRIAL with LOVE -
15 июня 2011 г. 16:38, спустя 9 минут 9 секунд
я тебе больше скажу - она скорее всего неверно считает длинну просто, длинна явно есть в метаданных заголовков …Сапожник без сапог -
15 июня 2011 г. 16:46, спустя 8 минут 19 секунд
Ну у меня в итоге 2 таких массива, данные из которых я в базу пишуArray
(
[filesize] => 15968406
[encoding_type] => CBR
[mpeg_ver] => 1
[layer] => 3
[bitrate] => 320
[frequency] => 44100
[mode] => Joint Stereo
[samples_per_frame] => 1152
[length] => 06:39
[lengthh] => 00:06:39
[lengths] => 399
[samples] => 17595900
[frames] => 15275
[musicsize] => 15960000
)
Array
(
[TAG] => TAG
[NAME] => Ohne Dich
[ARTISTS] => Umbra et Imago
[ALBUM] => Opus Magnus
[YEAR] => 2010
[COMMENT] => ExactAudioCopy v0.99pb5
[TRACK] => 1
[GENRENO] => 255
)
Вон в первом массиве и есть длительность. В данном случае правильная. Но к сожалению не всегда.from TRIAL with LOVE -
15 июня 2011 г. 17:17, спустя 31 минуту 18 секунд
в тех заголовках пишут что хотят, поэтому это нормально -
27 июля 2011 г. 13:59, спустя 41 день 20 часов 42 минуты
Снова вернулся к данной теме. С музыкой проблем нет, теперь встала проблема с видео :)
Не подскажете, есть какой всеядный плеер, который будет проигрывать все форматы а не как JW только .H264? Устанавливать на хост какие-то конверторы не хочется.from TRIAL with LOVE
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!