мы на самом деле работаем над органайзером удаленной музыкальной библиотеки, используя javascript, и я хотел бы знать, есть ли способ загрузить с помощью js последние 128 байтов файла MP3, чтобы получить его теги ID3. благодаря.
частично загрузить файл с Javascript
Ответы (2)
Вы не можете сделать это только с помощью JavaScript. Вам понадобится что-то на сервере (что именно зависит от вашей серверной технологии), чтобы прочитать соответствующую часть файла. Затем в JavaScript вы можете просто вызвать эту серверную часть.
Обновление 1
Протокол HTTP поддерживает загрузку файлов по частям (вот что). Но, конечно, HTTP ничего не знает о файлах MP3, поэтому вам нужно знать, какой диапазон файла содержит тег ID3 в вашем JavaScript.
Обновление 2
Кажется более реальным, чем я изначально ожидал, загрузить только кусок URL-адреса на чистом JavaScript:
xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your domain>/");
xhr.setRequestHeader("Range", "bytes=-256");
xhr.send();
Это запрашивает последние 256 байт удаленного файла.
Обратите внимание, что на ваш запрос, конечно же, распространяются обычные ограничения того же происхождения, поэтому вы можете использовать его только для получения файлов с сервера, содержащего исходный HTML/JavaScript.
Range
. Я использовал это для поддержки изучения содержимого .zip, в конце которого есть информация, говорящая вам, где искать информацию о каталоге. Это означало, что я мог создать пользовательский интерфейс на основе браузера для изучения очень больших zip-архивов без загрузки всего zip-архива.
- person Daniel Earwicker; 04.12.2012
Без использования серверного языка программирования: нет.
Вы можете использовать Ajax и PHP (или любой другой язык программирования), чтобы получить тег ID3.
С jQuery это выглядит примерно так:
function getInfo(func) {
$.ajax({
url: "mp3info.php?file=" + url,
dataType: "json",
ready: function(result) {
func(result);
}
});
}
И вы используете это так:
getInfo(function(mp3info) {
alert(mp3info.id3);
});
Тогда ваш файл PHP выглядит примерно так:
<?php
$info = array(); //The MP3 info array
echo json_encode($info, true);
?>