Я делал что-то подобное раньше, и решение, которое я нашел, заключалось в том, чтобы получить доступ к файлам MP3 через файл PHP, который регистрирует запрос в базе данных, а затем извлекает файл и обслуживает его (добавляя заголовки, чтобыбраузер распознает это как MP3).Что-то вроде:
// отслеживать файл после того, как вы подтвердили, что это правильный запрос (имя файла передается в URL как
?mp3=[mp3 filename]
$logged = track_this($_GET['mp3']); //some tracking function
//now spit it out...
$file_name = "song_name.mp3";
$file = '/path/to/files/'.$_GET['mp3'].'.mp3';
$mm_type="application/octet-stream";
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($file)) );
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header("Content-Transfer-Encoding: binary\n");
print file_get_contents($file);
, это работает довольно хорошо, хотя вы не можете отслеживатьони остановили трек на полпути (так что это довольно простые показатели)