我有一个时间签名的XML清单文件来播放MP3文件。我可以使用PHP将这些MP3';它是一个主MP3文件吗?

我有一个时间签名的XML清单文件来播放MP3文件。我可以使用PHP将这些MP3';它是一个主MP3文件吗?,php,mp3,Php,Mp3,我想XML会是这样的: <xml> <node time="500">1.mp3</node> <node time="700">2.mp3</node> <node time="800">3mp3</node> <node time="900">1.mp3</node> <node time="1000">2.mp3</node>

我想XML会是这样的:

 <xml>
   <node time="500">1.mp3</node>
   <node time="700">2.mp3</node>
   <node time="800">3mp3</node>
   <node time="900">1.mp3</node>
   <node time="1000">2.mp3</node>
   <node time="1100">3.mp3</node>
 </xml>

1.mp3
2.mp3
3mp3
1.mp3
2.mp3
3.mp3

时间以毫秒为单位。我是PHP新手,我不确定是否存在允许我对这些MP3进行排序的库

由于mp3文件只是帧,您可以前后删除ID3标记,然后使用普通php脚本基本上将文件流缝合在一起。他们会点击,但实际上会给你0延迟播放,尽管是从一个文件流。如果答案是使用php作为某种文件系统一个接一个地播放,那么答案是否定的。

如果您希望在服务器上有一个文件,然后将其从php文件中分割出来,您可以使用$\u GET或$\u POST方法并相应地处理附加的变量,然后使用filestream发送该文件位的内容。不过,这没有任何意义,因为您节省的任何服务器空间(可以忽略不计)都不值得用复杂的脚本来查找它们。我需要根据毫秒启动时间对它们进行排序。这意味着它们可能会重叠,并且可能存在多个声音层。mp3文件的最小单位是一帧,即0.028秒。你必须用你的开始/结束时间来说明这一点。除非您转换回原始pcm并在该级别拆分,然后将新合并的音频块重新编码为mp3帧,否则无法拆分帧。除非您希望服务器实时混合这些音频,否则您无法在php中执行您正在尝试的操作?这将是一个巨大的PITA,您将达到脚本限制/内存限制,延迟将超出窗口。我所知道的唯一能让你实现这一点的技术是Flash,我们都知道这一想法会有多流行。还有Marc B,很抱歉我是个书呆子,但mp3中的帧可以是任意长度,这取决于比特率、音频频率、编码类型CBR/VBR等。但关于帧分割,你是对的,一旦你将块放入兼容的比特流中,在找到另一个有效帧之前,你只能得到垃圾。如果您将文件缝合在一起,即使您弄乱了一帧,您也只会丢失一帧,导致音频中出现轻微的跳跃,仅此而已。