首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中自动裁剪mp3

在PHP中自动裁剪mp3
EN

Stack Overflow用户
提问于 2009-09-10 12:24:01
回答 6查看 14.9K关注 0票数 19

有没有办法在PHP中自动将上传到网站的MP3调整为30秒(或其他一些长度)?如果没有,有没有好的第三方服务可以集成(对用户透明)来达到同样的效果?

谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-09-10 12:30:07

你可以在PHPClasses上试用MP3 Class。它提供了以下示例:

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

在这种情况下,可以将“frame”替换为“second”,以基于时间帧进行剪切。

票数 21
EN

Stack Overflow用户

发布于 2012-01-18 03:51:28

我编写了一个脚本,可以动态输出一个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;
票数 3
EN

Stack Overflow用户

发布于 2016-12-04 16:07:34

我在项目中使用了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)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1404969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档