Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 32
1

Получение метаданных audio

30.05.2016, 16:35. Показов 2569. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть код, который отвечает за рандомное проигрывание аудио файлов. Файлы хранятся на сервере, путь к ним лежит в БД.
PHP-код генерирует путь и подставляет его в скрипт. Суть задания в том, что нужно вывести не только проигрыватель, но и название каждого трека. Генерировать название в том же php-файле не вариант, так как он предает только путь. Буду очень благодарна за любые советы!
Получение метаданных audio

Структура БД : dirname - директория в которой хранятся файлы, myfile - название файла с расширением ( вида 1.mp3), name - нормальное название файла (вида Lorde - Royals)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$path='radio/';
$nameDB='*********';
$nameSERVER='localhost';
$nameUSER = "***********";
$passUSER = "*******************";
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));
mysql_query('SET NAMES utf8');
 
$sql="select * from playlist where myfile like '%.mp3' ORDER BY RAND() LIMIT 1";
do {    
    $result=mysql_query($sql);
    $line=mysql_fetch_array($result);    
    $filename=$path.$line[dirname].$line[myfile];   
 
}while(!file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$filename));
 
print 'http://*******************'.'/'.$filename;
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<div id='radio'  >
    <img src='img/play.png' data-state='stop' id='btnPlay' width='44' height='44'class='onmouse hover' data-tooltip='Слушать музыку'>
        <div id='radio_volume'>
            <img src='img/volume_up.png' data-state='volume_up' id='btnVolumeUp' width='16' height='21'class='onmouse hover' data-tooltip='Громче'>
            <img src='img/volume_down.png' data-state='volume_down' id='btnVolumeDown' width='16' height='21'class='onmouse hover'  data-tooltip='Тише'>
        </div>
    <label id='radio_caption'>Radio!</label>
    <div id='volume_caption'>10</div>
 
    <audio id='player' class='player' src='' load='metadata' preload='metadata'></audio>
 
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
$(document).ready(function() {     
 
     $(document).on("click","#btnPlay",function(e) {
            if($(this).attr('data-state')=='stop'){
                $("#btnPlay").attr('src','img/signal.gif');
                $("#btnPlay").attr('data-state','play');                
                $("#hovertitle").hide();
                $.ajax({
                    type:'POST',
                    url:'radio.php',                    
                    async:true,
                    success:function(data){            
                        $("#btnPlay").attr('src','img/stop.gif');
                        $("audio").attr('src',data);
                        $("audio").attr('load','metadata');
                        $("audio").trigger('play');                        
                    },
                    error:function(xhr,str){                        
                    }
                });
                
            }
            else{
                if($(this).attr('data-state')=='play'){
                    $("audio").trigger('pause');
                    $("#btnPlay").attr('data-state','stop');
                    $("#btnPlay").attr('src','img/play.png');                    
                }    
            }            
       });
        $("audio").bind("ended",function(){
            $("#btnPlay").attr('src','img/signal.gif');
            var song=$.ajax({url:"radio.php",async:false}).responseText;
            $.ajax({
                type:'POST',
                url:'radio.php',                    
                async:true,
                success:function(data){            
                    $("#btnPlay").attr('src','img/stop.gif');
                    $("audio").attr('src',data);
                    $("audio").attr('load','metadata');
                    $("audio").trigger('play');                        
                },
                error:function(xhr,str){                        
                }
            });            
        });
 
        $("audio").bind("error",function(){
  
        });
        $("audio").bind("loadedmetadata",function(){
         
            
        });
        
        $(document).on("click","#btnVolumeUp",function(e) {
            var player=document.getElementById("player");
            player.volume+=0.1;
            var textv=Math.floor(player.volume*100);
            $("#volume_caption").text(textv);
            $("#volume_caption").fadeIn("slow");
            $("#volume_caption").fadeOut("slow");
            
        });
        $(document).on("click","#btnVolumeDown",function(e) {
            var player=document.getElementById("player");
            player.volume-=0.1;
            var textv=Math.floor(player.volume*100);
            $("#volume_caption").text(textv);
            $("#volume_caption").fadeIn("slow");
            $("#volume_caption").fadeOut("slow");            
        });
        
        $("audio").bind("canplaythrough",function(){
            var textv=this.duration;
            textv=((Math.floor(textv / 60) - (Math.floor(textv / 36000) * 60)) + ":" + Math.floor(textv % 60));            
            $("#volume_caption").text(textv);
            $("#volume_caption").fadeIn("slow");
            $("#volume_caption").fadeOut("slow");                        
        });
        
  });
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2016, 16:35
Ответы с готовыми решениями:

Получение интервала метаданных из потока
Как получить название песни? Пытаюсь прочитать байт размера метаданных из потока...

Получение метаданных аудиофайла в Qt5 без использования QMediaPlayer?
Здравствуйте. Получить метаданные проигрываемого в данный момент файла легко: player = new...

Управление Audio Source, полями AudioClip (Audio Clip) и Output (Audio Mixer Group) через скрипт
Ребята, мне опять нужна Ваша помощь! Помогите дописать скрипт управления\воспроизведения аудио...

Ошибка Метаданных "не найден идентификатор в справочнике Идентификатор объекта метаданных"
В общем ситуация следующая, только начал разбираться с 1С, скачал с оф сайта учебную версию для...

1
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.06.2016, 18:27 2
могу предложить вот такой вариант с считыванием данных с самого файла (метаданные, то есть теги)
1
02.06.2016, 18:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2016, 18:27
Помогаю со студенческими работами здесь

Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device
материнка типа P4S8X-MX ,Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device...

Не работает звук - нет драйвера на Audio Device on High Definition Audio Bus
Переустановил систему на компе на виндуоз XP. Звука нет Диспетчер устройств говорит, что нет...

Драйвер на Realtek AC'97 Audio for VIA (R) Audio Controller
помогите, первый раз такая проблема! Переустановил Виндовс на своем компе старом (он у меня только...

Обновление метаданных
Привет. Я мигрирую на MS SQL с Pervasive-а. Пока неясно как обновлять метаданные, если что-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru