Обучающая игра использует набор из 25 mp3-файлов с номерами в качестве названий (1.mp3, 2.mp3, 3.mp3 и т. Д.).Они воспроизводятся один за другим, и случайный аудио-префикс добавляется к основному звуку.
Я использовал этот пост: Объединение двух mp3 php для объединения файлов.Теперь у меня есть три mp3-файла для каждой воспроизводимой дорожки: основной звуковой файл (1.mp3, 2.mp3 и т. Д.) И два вспомогательных файла s_prefix.mp3 (со звуком, который должен бытьдобавлено) и s_blank.mp3 (для добавления тишины).Я создаю массив с этими вспомогательными файлами, рандомизирую их и добавляю перед основным аудио.
<?php
$a = $b = $c = 1;
$arr = array("mp3files/prefix.mp3", "mp3files/blank.mp3");
?>
<table>
<tr>
<td><a href="
<?php
// first audio
$s_rand = $arr[rand(0,sizeof($arr)-1)];
file_put_contents('mp3files/comb' . $a++. '.mp3', file_get_contents($s_rand) . file_get_contents('mp3files/' . $b++. '.mp3'));
echo ('mp3files/comb' . $c++. '.mp3');
?>
">Example text1</a></td>
</tr>
<tr>
<td><a href="
<?php
// second audio
$s_rand = $arr[rand(0,sizeof($arr)-1)];
file_put_contents('mp3files/comb' . $a++. '.mp3', file_get_contents($s_rand) . file_get_contents('mp3files/' . $b++. '.mp3'));
echo ('mp3files/comb' . $c++. '.mp3');
?>
">Example text2</a></td>
</tr>
<tr>
<td><a href="
<?php
// third etc... audio
$s_rand = $arr[rand(0,sizeof($arr)-1)];
file_put_contents('mp3files/comb' . $a++. '.mp3', file_get_contents($s_rand) . file_get_contents('mp3files/' . $b++. '.mp3'));
echo ('mp3files/comb' . $c++. '.mp3');
?>
">Example text3</a></td>
</tr>
</table>
Он отлично работает, но, насколько мне известно, он выглядит довольно громоздким и имеет много повторений.Может ли кто-нибудь упростить код или лучше всего создать функцию php, чтобы повторить его.