我想用php动态输出一个mp3文件,这样我就可以尝试使用html5音频标签进行voip呼叫。我打算在html文档中使用一个mp3音频标签,该标签指向我的php文件,该文件可以动态生成mp3数据。mp3头文件的一部分仅用2位编码。我已经研究过pack()
,但它似乎只支持打包成字节。我可以将标题分组为8位,但我真的更希望能够一位一位地写入流。有没有办法在php中做到这一点,或者我必须编写一个java/c++服务器才能获得这种低级别的控制?
更新
因此,经过一些研究,似乎由于tcp/ip的局限性(实际限制)和php管道的工作方式,使用php破坏逐字节传输是不可行的。
类似这样的东西:取"一"个随机字节,设置所需的位,打包。
$random_byte = mt_rand(0, 255); // it's not real one byte. But pack would truncate to it.
$last_bit = 1; //
$random_byte_with_last_bit = $random_byte | $last_bit;
var_dump(sprintf('%08b', $random_byte_with_last_bit));
$result = pack('C', $random_byte_with_last_bit);