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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2008, 11:52   #11
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
Восклицание

Цитата:
ДА спасибо нашел более менее понятно, но всётакии хотелось бы ещё и конкретный ответ
Код:
var streams: array[0..n] of HStream - массив звуков
...
BASS_Init(...)
...
streams[0] := BASS_StreamCreateFile(...)
streams[1] := BASS_StreamCreateFile(...)
...
BASS_ChannelPlay(streams[0]) / BASS_ChannelStop(streams[0]) 
BASS_ChannelPlay(streams[1]) / BASS_ChannelStop(streams[1]) 
...
BASS_Free()
Кстати, "всё уже украдено до нас"
http://www.delphiexpert.ru/load/Components/bass24.zip (с примерами на С, VB, MASM, Delphi)
пыщь
JTG вне форума Ответить с цитированием
Старый 24.09.2008, 12:17   #12
lacost
Пользователь
 
Регистрация: 25.03.2007
Сообщений: 67
По умолчанию

Огромное спасибо за ответы
lacost вне форума Ответить с цитированием
Старый 25.09.2008, 17:05   #13
lacost
Пользователь
 
Регистрация: 25.03.2007
Сообщений: 67
По умолчанию

Нарисовалась ещё 2 вопроса по существу.

1) Мне необходимо воспроизводить мелодии с точночтью до милисекунд. Поэтому для остоновки проигрываемого потока следует использовать таймер (DXTimer я так понимаю подоидёт лучше всего) со щелчков 1 милисекундку и когда он счёлкнет n рас запустить BASS_ChannelStop.

Теперь собственно вопрос, самый ли рациональный это способ, и не вызовет ли большое кол- во таймеров "тормоза" а как следствие не соответствие во времени воспроизведения?

2) Визуализацию ресую следущим образом:
Код:
procedure TFormPlayer.TimerRenderTimer(Sender: TObject);
 var FFTFata : TFFTData; WaveData  : TWaveData;
begin

 
   
    BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
    Spectrum.Draw (PaintFrame.Canvas.Handle, FFTFata, TrackX.Position - 40, TrackY.Position - 60);
end;
ОТюда видно что визуализация ресуется для одного потока Channel...а как быть если не необходимо нарисовать её для массива потоков?
lacost вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PlaySound() Артэс Общие вопросы C/C++ 7 19.09.2010 20:18
Нужна помощь: выбор файлов исходя из имени файлов Antik163RUS Помощь студентам 4 19.06.2008 21:20
Печать pdf файлов из списка файлов в Excel АПС Microsoft Office Excel 5 15.04.2008 16:04
PlaySound delphin100 Мультимедиа в Delphi 9 31.03.2008 08:40
соединение файлов Lonix Общие вопросы Delphi 1 06.11.2007 22:52