Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2015, 15:51
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

Как вывести битрейт?
Здравствуйте. Есть html с ссылками на песни, временем и кнопки, после нажатия на которые должен выводиться битрейт песни вместо (или рядом) со словом "битрейт".
<div class="song">
<a class="song_play" href="http://serv.sdsong/12345644.mp3">Песня 1</a><span>3:40</span>
<div class="bitrate">битрейт</div>
</div>
<div class="song">
<a class="song_play" href="http://serv.sdsong/5645644.mp3">Песня 2</a><span>4:30</span>
<div class="bitrate">битрейт</div>
</div>

В интернете нашел js-код:
var audioLink = document.querySelector('.my_audio_link_class');
var durationBlock = document.querySelector('.element_with_duration_in_text_class').innerText.split(':'); //it has string '1:36' for example and i create new array with minutes and seconds
var duration = durationBlock[0]*60 + +durationBlock[1]; //convert minutes into seconds and convert string with second into integer, then summarize them

function (audioLink, duration) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType('text/xml');

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var size = xmlhttp.getResponseHeader('Content-Length');//get file size
        var kbit=size/128;//calculate bytes to kbit
    var kbps= Math.ceil(Math.round(kbit/duration)/16)*16;
    console.log(kbps);
    }
};
xmlhttp.open("HEAD", audioLink, true);
xmlhttp.send();
}

Но как при помощи него реализовать задуманное я так и не понял...
Подскажите, как вывести битрейт? Спасибо.

Последний раз редактировалось Aleksanderj, 04.10.2015 в 15:58.
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2015, 21:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это всего лишь запрос к серверу за необходимой информацией, а сервер получает битрейт с помощью библиотеки, например, ffmpeg.

PS. Дополнение. Эту библиотеку зачастую используют, ибо нужна нарезка, конвертирование и т.п. медиаформатов. Но если вам нужен только биотрейт и иная информация, и ничего более, то например в РНР есть расширение ID3, которое работает с тегами MP3. А какой язык у вашего сервера.

Последний раз редактировалось laimas, 04.10.2015 в 21:53.
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2015, 03:25
Аспирант
Отправить личное сообщение для Aleksanderj Посмотреть профиль Найти все сообщения от Aleksanderj
 
Регистрация: 14.06.2013
Сообщений: 70

laimas, как я понимаю битрейт - это всего лишь арифметическое действие:
Мб х 8192/время /60
И по идеи достаточно через javascript обратиться к сервере за весом файла, т.к. время нам известно.
Я давно написал расширение для Chrome связанное с музыкой, так вот решил обновить немного и добавить возможность просмотра битрейта, с аяксом не особо дружу...
Ответить с цитированием
  #4 (permalink)  
Старый 05.10.2015, 06:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

По размеру файла битрейта вы не высчитаете, уж тогда получать заголовок файла извлекая из него данные битрейта.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать битрейт mp3 файла? Dimaz Общие вопросы Javascript 1 26.09.2014 18:01
Как вывести массив в name greenbuger Элементы интерфейса 1 05.08.2014 02:03
Как вывести картинку по запросу Bon Events/DOM/Window 2 04.04.2012 02:20
как вывести картинку по запросу Bon Общие вопросы Javascript 0 03.04.2012 13:29
Как вывести ошибку в javascript? MCTrane Общие вопросы Javascript 13 05.05.2010 08:36