سؤال

هل هناك أي وسائل لخفض تلقائيا MP3 تحميلها على موقع على شبكة الانترنت لمدة 30 ثانية (أو بعض طول الأخرى) في PHP؟ إن لم يكن، هل هناك أي خدمات 3rd الطرف الجيدة التي يمكن أن تكون متكاملة (بشفافية للمستخدم) لتحقيق نفس التأثير؟

وشكرا.

هل كانت مفيدة؟

المحلول

هل يمكن أن تحاول MP3 الدرجة على PHPClasses. ويتميز المثال التالي:

require_once './class.mp3.php';
$mp3 = new mp3;
$mp3->cut_mp3('input.mp3', 'output.mp3', 0, -1, 'frame', false);

في هذه الحالة، يمكن أن تكون بديلا لل'إطار' مع 'الثانية' لقاعدة قطع على الإطار الزمني.

نصائح أخرى

ولقد وضعت السيناريو الذي إخراج الكليب الثاني من ملف MP3 على الطاير (30). إذا كنت تبحث لحفظ الملف، واحدة من الخيارات الأخرى باستخدام فئة / مكتبة من المحتمل أن يكون أفضل. ولكن، إذا كنت ترغب فقط للعب / تحميل المعاينة، على الطاير قد يكون أفضل. وسوف بالتأكيد سيوفر لك مساحة القرص الصلب.

والتحقق من ذلك على الموقع http://www.stephenwalcher.com/2013/06/17/how-to-extract-and-play-part-of-an-mp3-in-php/ .

وهنا هو رمز، ولكن يمكن العثور على تفسير أعمق على بلدي بلوق.

$getID3 = new getID3();

$id3_info = $getID3->analyze($filename);

list($t_min, $t_sec) = explode(':', $id3_info['playtime_string']);
$time = ($t_min * 60) + $t_sec;

$preview = $time / 30; // Preview time of 30 seconds

$handle = fopen($filename, 'r');
$content = fread($handle, filesize($filename));

$length = strlen($content);

if (!$session->IsLoggedIn()) {
    $length = round(strlen($content) / $preview);
    $content = substr($content, $length / 3 /* Start extraction ~10 seconds in */, $length);
}

header("Content-Type: {$id3_info['mime_type']}");
header("Content-Length: {$length}");
print $content;

في ديبيان / أوبونتو حاول تثبيت mpgtx :

apt-get install mpgtx

mptsplit input.mp3 [00:00:00-00:00:30] -o output.mp3

وأنا متأكد من أنك سوف تجد متاح mpgtx في توزيعات لينكس الأخرى الجميلة جدا، أو لمجرد تثبيت من المصدر.

وكان لي مشاكل معالجة بعض ملفات MP3 مع كل فئة MP3 وmpgtx. الخيار الأفضل هنا هو فمبيج على ما أعتقد. هذه الصفحة ديه بعض الأمثلة الجيدة على ملفات الوسائط تقسيم مع فمبيج .

PHP MP3 للحصول على مشروعي.

<?php
//Extract 30 seconds starting after 10 seconds.
$path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3_1 = $mp3->extract(10,30);
$mp3_1->save('newpath.mp3');
?>

لقضيتك يمكنك استخدام extract(0,30) أو extract(30,60).

//Merge two files
 $path = 'path.mp3';
 $path1 = 'path1.mp3';
 $mp3 = new PHPMP3($path);

 $newpath = 'path.mp3';
$mp3->striptags();

$mp3_1 = new PHPMP3($path1);
$mp3->mergeBehind($mp3_1);
  $mp3->striptags();

 $mp3->setIdv3_2('01','Track Title','Artist','Album','Year','Genre','Comments','Composer','OrigArtist','Copyright','url','encodedBy');

$mp3->save($newpath);

//Extract 30 seconds starting after 10 seconds.
  $path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3_1 = $mp3->extract(10,30);
$mp3_1->save('newpath.mp3');

//Extract the exact length of time
$path = 'path.mp3';
$mp3 = new PHPMP3($path);
$mp3->setFileInfoExact();
echo $mp3->time;
//note that this is the exact length!

المصدر: https://github.com/thegallagher/PHP -mp3 / فقاعة / الماجستير / README.md

https://github.com/falahati/PHP-MP3

<اقتباس فقرة>   

وPHP-MP3 هي مكتبة بسيطة للقراءة والتلاعب MPEG الصوت   (MP3).

وتثبيت:

composer require falahati/php-mp3:dev-master

وقطع MPEG الصوت:

\falahati\PHPMP3\MpegAudio::fromFile("old.mp3")->trim(10, 30)-saveFile("new.mp3");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top