Вверх ↑
Этот топик читают: Гость
Ответов: 133
Рейтинг: 3
#1: 2009-05-12 17:42:47 ЛС | профиль | цитата
Кто-нибудь знает, как создать компонент, выводящий битрейт воспроизводящегося mp3 файла на форму?
В Hiasm такого не нашёл.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Администрация
Ответов: 15294
Рейтинг: 1518
#2: 2009-05-12 18:06:09 ЛС | профиль | цитата
а BASS_ChannelEnumTags ничего не показывается после загрузки файла?
карма: 26
0
Ответов: 373
Рейтинг: 108
#3: 2009-05-12 18:08:24 ЛС | профиль | цитата
Artem_user
Вот дельфиний компонент для bass.dll. Он вроде умеет выводить битрейт.
(поддерживает winamp плагины)
http://www.delphilab.ru/files/component/tbassplayer.zip
карма: 0

0
Ответов: 8886
Рейтинг: 823
#4: 2009-05-12 18:37:38 ЛС | профиль | цитата
Dilma, какие-то смутные подозрения у меня по поводу этой характеристики цифрового звука: если я запишу 2-канальный звук при дискретизации 44 кГц целыми числами Smallint (2 байта) битрейт получится 2х2х44100=176400, если этот же звук того же качества запишу числами Single (4 байта) (про 10-байтные Extended умолчу) битрейт увеличится в 2 раза 352800 , да введу промежуточную дискретизацию по соседним значениям битрейт вырастет аж до 705600, а качество-то останеться прежним, зато будет чем погордиться перед коллегами Artem_user-а "Вот у меня какой битрейт!"
Или нет?
карма: 19

0
Ответов: 133
Рейтинг: 3
#5: 2009-05-12 18:51:12 ЛС | профиль | цитата
BASS_ChannelEnumTags я нашёл , но никак не получается его грамотно присоединить.Схема самодельного плеера тут:
http://narod.ru/disk/8612292000/1000V%20media%20player1111.sha.html
А mp3_info битрейт не выводит(хорошо, если бы умел.....)
http://www.hiasm.com/xx/smilies/icon_sad.gif
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#6: 2009-05-12 18:55:11 ЛС | профиль | цитата
Леонид, битрейт в отношение качества для каждого способа кодирования считается по своему(это вообще характеристика канала изначально, а не качества). Для никак не сжатого звука она не уместна вообще.

Поэтому данная характеристика актуальна только в рамках одного формата сжатия и никак не может говорить о качестве звучания при сравнение ее в разных форматах (например MP3 и OGG)
------------ Дoбавленo в 18.56:
Artem_user писал(а):
А mp3_info битрейт не выводит(хорошо, если бы умел.....)

этот элемент выводит содержимое тегов из области в 256 байт в конце файла. Даже если оно там есть, то может запросто не соответствовать реальности
карма: 26
0
Ответов: 133
Рейтинг: 3
#7: 2009-05-12 19:38:50 ЛС | профиль | цитата
Vlad,
Ваш плеер не выводит битрейт-в окне к примеру, пишет Kardinal_offishall_and_keri_hilson-numba_1.mp3
44100Hz, Stereo
А битрейт не показывает
Интересно, если в системе есть аудиодрайвер, но нет mp3.dll, и кодеков-разве приложению (плеер на основе hiasm )bass.dll не достаточно для проигрывания mp3?

Схема плеера

Make(delphi)
ver(4.01 build 175)
Add(Message,12393418,385,182)
{
Caption="Error"
Icon=1
}
Add(StrCat,13951091,336,182)
{
Str1="Error opening file name: "
link(onStrCat,12393418:doMessage,[])
}
Add(MainForm,7272375,42,168)
{
Width=403
Height=225
Caption="BASS test equalizer effect"
Point(Handle)
link(onCreate,4252681:doInit,[])
}
Add(BASS_Init,4252681,119,182)
{
link(onInit,10183901:doCheck,[])
link(onError,11232751:doMessage,[(163,195)(163,237)])
link(Handle,7272375:Handle,[(139,170)(93,170)(93,212)(48,212)])
}
Add(BASS_Version,10183901,175,182)
{
link(onCheckFailed,109118:doMessage,[(219,195)(219,237)])
}
Add(Message,11232751,175,231)
{
Message="Error BASS initialization"
Caption="Error"
Icon=1
}
Add(Message,109118,231,231)
{
Message="Incorrect version of BASS library "
Caption="Error"
Icon=1
}
Add(BASS_StreamCreateFile,2073512,273,140)
{
Name="MainSound"
link(onCreate,3883412:doPlay,[])
link(onError,13951091:doStrCat,[(322,160)(322,188)])
link(FileName,12373576:Text,[])
}
Add(Edit,12373576,273,91)
{
Left=65
Top=15
Width=300
Text=""
}
Add(Button,13708268,175,140)
{
Left=5
Top=15
Caption="Play"
link(onClick,2073512:doCreate,[])
}
Add(Button,13089460,175,91)
{
Left=365
Top=15
Width=20
Caption="..."
link(onClick,4225408:doExecute,[])
}
Add(ODialog,4225408,224,91)
{
link(onExecute,12373576:doText,[])
}
Add(BASS_ChannelFX_Eq,9020875,560,70)
{
Channel="MainSound"
Center=125
Bandwidth=16
}
Add(BASS_ChannelPlay,3883412,336,140)
{
Channel="MainSound"
}
Add(ScrollBarEx,3663733,462,70)
{
Left=25
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,15826144:doEvent1,[])
}
Add(Label,4455329,462,28)
{
Left=15
Top=50
Width=35
Height=12
Caption="125Hz"
}
Add(Label,15573584,609,77)
{
Left=30
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,15826144,511,70)
{
link(onEvent1,9020875:doSet,[])
link(onEvent2,15573584:doText,[])
}
Add(BASS_ChannelFX_Eq,10309475,560,154)
{
Channel="MainSound"
Center=1000
Bandwidth=16
}
Add(ScrollBarEx,10748022,462,154)
{
Left=65
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,15142066:doEvent1,[])
}
Add(Label,13855849,462,112)
{
Left=60
Top=50
Width=29
Height=17
Caption="1kHz"
}
Add(Label,13281549,609,161)
{
Left=70
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,15142066,511,154)
{
link(onEvent1,10309475:doSet,[])
link(onEvent2,13281549:doText,[])
}
Add(BASS_ChannelFX_Eq,15040623,560,238)
{
Channel="MainSound"
Center=3000
Bandwidth=16
}
Add(ScrollBarEx,7442191,462,238)
{
Left=105
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,3889380:doEvent1,[])
}
Add(Label,14922821,462,196)
{
Left=100
Top=50
Width=29
Height=17
Caption="3kHz"
}
Add(Label,12978871,609,245)
{
Left=110
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,3889380,511,238)
{
link(onEvent1,15040623:doSet,[])
link(onEvent2,12978871:doText,[])
}
Add(BASS_ChannelFX_Eq,13092235,560,322)
{
Channel="MainSound"
Center=5000
Bandwidth=16
}
Add(ScrollBarEx,6844832,462,322)
{
Left=145
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,3870305:doEvent1,[])
}
Add(Label,3530284,462,280)
{
Left=140
Top=50
Width=29
Height=17
Caption="5kHz"
}
Add(Label,16637343,609,329)
{
Left=150
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,3870305,511,322)
{
link(onEvent1,13092235:doSet,[])
link(onEvent2,16637343:doText,[])
}
Add(BASS_ChannelFX_Eq,13046718,560,406)
{
Channel="MainSound"
Center=7000
Bandwidth=16
}
Add(ScrollBarEx,16111218,462,406)
{
Left=185
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,4135563:doEvent1,[])
}
Add(Label,13532011,462,364)
{
Left=180
Top=50
Width=29
Height=17
Caption="7kHz"
}
Add(Label,7059853,609,413)
{
Left=190
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,4135563,511,406)
{
link(onEvent1,13046718:doSet,[])
link(onEvent2,7059853:doText,[])
}
Add(BASS_ChannelFX_Eq,10036004,560,488)
{
Channel="MainSound"
Center=9000
Bandwidth=16
}
Add(ScrollBarEx,16355412,462,488)
{
Left=225
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,12697630:doEvent1,[])
}
Add(Label,11914571,462,446)
{
Left=220
Top=50
Width=29
Height=17
Caption="9kHz"
}
Add(Label,11769139,609,495)
{
Left=230
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,12697630,511,488)
{
link(onEvent1,10036004:doSet,[])
link(onEvent2,11769139:doText,[])
}
Add(BASS_ChannelFX_Eq,6715303,560,570)
{
Channel="MainSound"
Center=11000
Bandwidth=16
}
Add(ScrollBarEx,1131032,462,570)
{
Left=265
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,6608367:doEvent1,[])
}
Add(Label,16535075,462,528)
{
Left=260
Top=50
Width=35
Height=17
Caption="11kHz"
}
Add(Label,6705532,609,577)
{
Left=270
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,6608367,511,570)
{
link(onEvent1,6715303:doSet,[])
link(onEvent2,6705532:doText,[])
}
Add(BASS_ChannelFX_Eq,4488879,560,659)
{
Channel="MainSound"
Center=13000
Bandwidth=16
}
Add(ScrollBarEx,13776646,462,659)
{
Left=305
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,15012876:doEvent1,[])
}
Add(Label,2113435,462,617)
{
Left=300
Top=50
Width=35
Height=17
Caption="13kHz"
}
Add(Label,10691832,609,666)
{
Left=310
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,15012876,511,659)
{
link(onEvent1,4488879:doSet,[])
link(onEvent2,10691832:doText,[])
}
Add(BASS_ChannelFX_Eq,12784840,560,748)
{
Channel="MainSound"
Center=15000
Bandwidth=16
}
Add(ScrollBarEx,10359574,462,748)
{
Left=345
Top=70
Width=15
Height=100
Max=15
Min=-15
Kind=1
link(onPosition,14183317:doEvent1,[])
}
Add(Label,14319566,462,706)
{
Left=340
Top=50
Width=35
Height=17
Caption="15kHz"
}
Add(Label,14858604,609,755)
{
Left=350
Top=175
Width=10
Height=17
Caption="0"
}
Add(Hub,14183317,511,748)
{
link(onEvent1,12784840:doSet,[])
link(onEvent2,14858604:doText,[])
}
карма: 0

0
Разработчик
Ответов: 4697
Рейтинг: 426
#8: 2009-05-12 20:04:03 ЛС | профиль | цитата
Artem_user, пользуйся тегами code(чуть выше самого сообщения когда пишешь)
карма: 10
0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2009-05-12 20:48:57 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2021-06-21 04:28:29
карма: 0

0
Ответов: 373
Рейтинг: 108
#10: 2009-05-12 21:04:18 ЛС | профиль | цитата
Artem_user писал(а):
Ваш плеер не выводит
Это не плеер а компонент для delphi и битрейт выводить умеет.
Artem_user писал(а):
Интересно
Достаточно (хвааатит )
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#11: 2009-05-12 22:18:16 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2021-06-21 04:28:28
карма: 0

0
Ответов: 3851
Рейтинг: 159
#12: 2009-05-12 23:52:58 ЛС | профиль | цитата
andrestudio, ты штоле? кому плюск ставить?

по теме:
узнать битрейт mp3-файла можно вообще просто разделив размер файла на длительность (в секундах), оно конечно будет с небольшой погрешностью - в конце файла есть тэги, которые не учавствуют в проигрывании, но место занимают. Такой способ хорош, когда при сжатии использовался метод компрессии VBR (с переменной скоростью), а в тэге стоит скорость первого кадра (не уверен что такое возможно, но всё-же)..
карма: 0
начавший
0
Ответов: 133
Рейтинг: 3
#13: 2009-05-28 15:17:11 ЛС | профиль | цитата
Нашёл в интернете следующий код(вывод битрейта WAVE на Delphi)
code_13515.txt
Думаю, вместо WAVE можно MP3 написать.
Вот только как сделать компонент выводящий битрейт воспроизводящегося mp3 на Hiasm?
Код на делфи я проверить , работает ли, не могу(нет среды разработки, да и платная она.....)
Есть и ещё коды на странице [url]
http://www.delphisources.ru/pages/faq/base/bitrate_wav_file.html
[/url]
карма: 0

0
файлы: 1code_13515.txt [583B] [508]
Администрация
Ответов: 15294
Рейтинг: 1518
#14: 2009-05-28 15:35:20 ЛС | профиль | цитата
Artem_user писал(а):
Думаю, вместо WAVE можно MP3 написать.

нельзя. Не одно и тоже мягко говоря
------------ Дoбавленo в 15.36:
отправная точка поиска
http://www.delphisources.ru/forum/showthread.php?t=4878
карма: 26
1
Голосовали:Artem_user
Ответов: 2057
Рейтинг: 28
#15: 2009-05-28 16:23:28 ЛС | профиль | цитата
Artem_user писал(а):
Код на делфи я проверить , работает ли, не могу(нет среды разработки, да и платная она.....)

есть Турбо Дельфи, он бесплатный.
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)