Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2008, 21:12   #1
Garacio_cain
Пользователь
 
Аватар для Garacio_cain
 
Регистрация: 05.01.2008
Сообщений: 85
По умолчанию BASS Визуализация

Доброго времени суток!

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

Получилось реализовать немного. Но появилась проблема. Искал в Гугле смотрел на разных форумах. Не смог найти хотя бы примерного кода для визуализации.

Если сможите, подкиньте идею как это сделать!
Garacio_cain вне форума Ответить с цитированием
Старый 13.08.2008, 23:13   #2
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

void draw()
{
float H=Form1->PaintBox1->Height,W=Form1->PaintBox1->Width;
int Ypos,i,PeakFallOff=2,Res=2,LineFall Off=4,Width=3,Height;
short X,Y;
float Yval;
bool DrawPeak=true,FrameClear=true;
TColor Pen=clGreen,Peak=clRed,BackColor=cl Black;
float fft[512]; // fft data buffer
Height=H-1;
X=0;
Y=0;
if(FrameClear)
{
Form1->PaintBox1->Canvas->Pen->Color=BackColor;
Form1->PaintBox1->Canvas->Brush->Color=BackColor;
Form1->PaintBox1->Canvas->Rectangle(0,0,W,H);
}
if(BASS_ChannelIsActive(stream)!=BA SS_ACTIVE_PLAYING)
return;
BASS_ChannelGetData(stream,fft,BASS _DATA_FFT1024);

Form1->PaintBox1->Canvas->Pen->Color=Pen;
for(i=0;i<=128;i++)
{
Yval=fft[i*Res+5];
if(Yval<0.0)
Yval=-Yval;
Ypos=floor(Yval*500);
if(Ypos>Height)
Ypos=Height;
if(Ypos>=FFTPeacks[i])
FFTPeacks[i]=Ypos;
else
FFTPeacks[i]-=PeakFallOff;
if(Ypos>=FFTFallOff[i])
FFTFallOff[i]=Ypos;
else
FFTFallOff[i]-=LineFallOff;
//if(H-FFTPeacks[i]>H)
//FFTPeacks[i]=0;
//if(H-FFTFallOff[i]>H)
//FFTFallOff[i]=0;
//if(DrawPeak)
{
Form1->PaintBox1->Canvas->Pen->Color=Peak;
Form1->PaintBox1->Canvas->MoveTo(X+i*(Width+1),Y+H-1-FFTPeacks[i]);
Form1->PaintBox1->Canvas->LineTo(X+i*(Width+1)+Width,Y+H-1-FFTPeacks[i]);
}
Form1->PaintBox1->Canvas->Pen->Color=Pen;
Form1->PaintBox1->Canvas->Brush->Color=Pen;
Form1->PaintBox1->Canvas->Rectangle(X+i*(Width+1),Y+H-FFTFallOff[i],X+i*(Width+1)+Width,Y+H);
}
}
Это примерный код написанный для C++ Builder, но его нетрудно перенести и в Делпхи...И вместе с басс.длл идёт хелп и примеры, в том числе и для делпхи, так, что посматри, думаю там должен быть пример визуализации...
можеш обратиться потом ко мне на асю 465200328 я сейчас делаю .дл для проги своей там она основана на басс.длл и там буду реализованы все функции для плейров и также чтоб сделать визуализацию непридеться писать код а надо будет лиш вызвать функцию определёную или же чтоб построить плей лист также достаточно вызвать функцию и ненадо ломать голову над алгоритмом данным...
#include <мозг.h>

Последний раз редактировалось Руслантус; 13.08.2008 в 23:41.
Руслантус вне форума Ответить с цитированием
Старый 14.08.2008, 00:19   #3
Garacio_cain
Пользователь
 
Аватар для Garacio_cain
 
Регистрация: 05.01.2008
Сообщений: 85
По умолчанию

Спасибо большое! Думаю справлюсь. В основном код понял!
Garacio_cain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с параметрическим эквалайзером в BASS.DLL! N-DOGG Компоненты Delphi 2 04.01.2009 16:05
Всем кто использует BASS (мультимедиа) MusicMan Помощь студентам 1 27.04.2008 10:56
Компонент для Winampa (Bass Player) DeDoK Компоненты Delphi 1 25.11.2007 09:46
bass.dll - ошибка - Use the step or run to continue. vitalik007 Общие вопросы Delphi 1 20.08.2007 19:59
визуализация алгоритма Alar Паскаль, Turbo Pascal, PascalABC.NET 0 30.10.2006 14:10