![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 26.04.2009
Сообщений: 7
|
![]()
Здравствуйте! Помогите разобраться с исходником программы по созданию плеера. К примеру, что такое Tsonstream, PositionEnCours, GetTempsTotal, и что означают строчки ParaEQMED.Min:=trunc(TabSon[1].GetMinParamEQGain); или
TabSon[1].SetPan(Balance.Position)? Привожу отрывок кода const MAX_SON = 2; var Form1: TForm1; TabSon : array[1..MAX_SON]of TSonStream; PATH :string; volume: LongWord; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); begin scrollbar1.Position:=TabSon[1].PositionEnCours; if(TabSon[1].GetNom<>'')then Label1.Caption:=Format('Общее время (в сек): %f, текущее время: %f', [TabSon[1].GetTempsTotal,TabSon[1].GetTempsEnCours]); end; procedure TForm1.ProgressBar1MouseDown(Sender : TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin TabSon[1].ChangerPosition(X); end; procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin TabSon[1].ChangerPosition(scrollbar1.Positio n); end; procedure TForm1.CompressorClick(Sender: TObject); begin if Compressor.Checked = true then begin TabSon[1].AppliquerCompressor; TabSon[1].SetCompressor(CompressorBar.Positi on); end else TabSon[1].RetirerCompressor; end; procedure TForm1.ReverbClick(Sender: TObject); begin if Reverb.Checked = true then TabSon[1].AppliquerReverb else TabSon[1].RetirerReverb; end; procedure TForm1.ParaEQLOWChange(Sender: TObject); begin TabSon[1].SetParamEQLow(ParaEQLOW.Position); end; procedure TForm1.ParaEQMEDChange(Sender: TObject); begin TabSon[1].SetParamEQMed(ParaEQMED.Position); end; procedure TForm1.ParaEQHIGHChange(Sender: TObject); begin TabSon[1].SetParamEQHigh(ParaEQHIGH.Position ); end; procedure TForm1.EqualiseurClick(Sender: TObject); begin if Equaliseur.Checked = true then begin TabSon[1].AppliquerParamEQLow; TabSon[1].AppliquerParamEQMed; TabSon[1].AppliquerParamEQHigh; TabSon[1].SetParamEQLow(ParaEQLOW.Position); TabSon[1].SetParamEQMed(ParaEQMED.Position); TabSon[1].SetParamEQHigh(ParaEQHIGH.Position ); end else begin TabSon[1].RetirerParamEQLow; TabSon[1].RetirerParamEQMed; TabSon[1].RetirerParamEQHigh; end; end; procedure TForm1.FormCreate(Sender: TObject); begin PATH := ExtractFilePath(Application.ExeName ); TabSon[1]:=TSonStream.Create; ParaEQLOW.Min:=trunc(TabSon[1].GetMinParamEQGain); ParaEQLOW.Max:=trunc(TabSon[1].GetMaxParamEQGain); ParaEQLOW.Position:=trunc(TabSon[1].GetIniParamEQGain); ParaEQMED.Min:=trunc(TabSon[1].GetMinParamEQGain); ParaEQMED.Max:=trunc(TabSon[1].GetMaxParamEQGain); ParaEQMED.Position:=trunc(TabSon[1].GetIniParamEQGain); ParaEQHIGH.Min:=trunc(TabSon[1].GetMinParamEQGain); ParaEQHIGH.Max:=trunc(TabSon[1].GetMaxParamEQGain); ParaEQHIGH.Position:=trunc(TabSon[1].GetIniParamEQGain); CompressorBar.Max:=trunc(TabSon[1].GetMaxCompressorGain); CompressorBar.Min:=trunc(TabSon[1].GetMinCompressorGain); CompressorBar.Position:=trunc(TabSo n[1].GetIniCompressorGain); volume := (TrackBar1.Position - TrackBar1.Max+1)* 6500; volume := volume + (volume shl 16); waveOutSetVolume(WAVE_MAPPER,volume ); Frequence.Max:=TabSon[1].GetFrequenceMax; Frequence.Position:=TabSon[1].GetFrequence; Frequence.Min:=TabSon[1].GetFrequenceMin; Balance.Min:=TabSon[1].GetPanMin; Balance.Max:=TabSon[1].GetPanMax; Balance.Position:=TabSon[1].GetPanIni; LabNomS1.Transparent:=true; end; procedure TForm1.BalanceChange(Sender: TObject); begin TabSon[1].SetPan(Balance.Position); end; procedure TForm1.listbox1Click(Sender: TObject); begin TabSon[1].Charger(listbox1.Items.Strings[listbox1.itemIndex]); scrollbar1.Max:=TabSon[1].LongueurTotal; LabNomS1.Caption:='Song: '+TabSon[1].GetNom; Equaliseur.Checked:=false; Echo.Checked:=false; Reverb.Checked:=false; Compressor.Checked:=false; end; procedure TForm1.SauverClick(Sender: TObject); begin if(BddS.Execute)then listbox1.Items.SaveToFile(BddS.File Name+'.dat'); end; procedure TForm1.ChargeClick(Sender: TObject); begin opendialog1.FilterIndex:=2; if(opendialog1.Execute) then listbox1.Items.LoadFromFile(opendia log1.FileName); end; procedure TForm1.Effacer1Click(Sender: TObject); begin listbox1.Items.Delete(listbox1.Item Index); end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin TabSon[1].Lire(True); end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin if ListBox1.ItemIndex < ListBox1.Count then ListBox1.ItemIndex := ListBox1.ItemIndex + 1; TabSon[1].lire (true); end; procedure TForm1.SpeedButton5Click(Sender: TObject); begin TabSon[1].Stopper; end; procedure TForm1.SpeedButton4Click(Sender: TObject); begin TabSon[1].Lire(False); end; |
![]() |
![]() |
![]() |
#2 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
я думаю будет лучше, если добрые форумчане пришлют список основных команд для работы с басс библиотекой и опишут что каждая из команд делает, все-таки этот исходник немного сложноват для новичка, я сам скачал этот проигрыватель (код на такой-же, но идентификаторы другие), до сих пор разобраться не могу, а учиться работать с басс библиотекой хочется, а начинать надо с простого, да извиняюсь за то, что не помог ничем, просто мне самому бы писать это все научиться, спасибо всем тем, кто не проигнорит и не раскритикует это сообщение)
from dark to light)
Последний раз редактировалось Алексей_2012; 26.12.2012 в 14:30. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.01.2012
Сообщений: 58
|
![]()
JuliaBelochka, сторонний объект, к стандарту BASS не имеет никакого отношения. Скачайте другой пример.
Алексей_2012, хорошо, я объясню азы, хотя в интернете куча подобной информации... Ну да ладно. BASS - звуковой движок, подключаемая библиотека, облегчающая работу с воспроизведением аудио-файлов, основанная на DirectSound и DirectSound3D. Самая простейшая программа с использованием BASS.DLL (Надеюсь как подключать библиотеку Вы знаете): Код:
1. Инициализация аудио. Перед воспроизведением нужно обязательно инициализировать устройство вывода звука, иначе не получится воспроизвести. Далее проверка на сходство версии библиотеки. Дабы избежать "левых" библиотек и несоответствие версии. 1. Если закрыли диалог открытия файла, то выходим из процедуры. 2. "Если поток не пуст, то освобождаем" - что это значит? Объясняю: к примеру мы уже загрузили аудио-файл в поток, тогда при воспроизведении композиции смешаются и память не будет освобождаться. 3. Инициализируем поток, 2-й параметр путь и имя файла, над остальным пока что можете не заморачиваться. 4. Если поток загружен, то воспроизводим, иначе выдаем ошибку. 5. Если не удалось воспроизвести, то выводим ошибку. Итак, запомните: Поток - HSTREAM или DWORD, разницы нет. Инициализация аудио - BASS_Init. Освободить поток - BASS_StreamFree(Название_потока); Инициализировать поток - Channel := BASS_StreamCreateFile(..,...,...); Воспроизвести - BASS_ChannelPlay(Название_потока, False);. Все, оказывается очень просто. Вот еще, навскидку: Стоп - BASS_ChannelStop(Название_потока); Пауза - BASS_ChannelPause(Название_потока); |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен Help для библиотеки Bass.dll | Virus25 | Компоненты Delphi | 6 | 10.12.2012 11:41 |
Как создать в Delphi mp3 плеер? Без использования bass.dll. | megatronx | Помощь студентам | 2 | 10.03.2010 17:15 |
Подключение библиотеки BASS? | Ferz-2009 | Мультимедиа в Delphi | 2 | 29.12.2009 08:15 |
MP3-плеер | Egych | Софт | 10 | 14.01.2008 20:54 |
микшер на два потока в проигрывателе музыки. проигрыватель сделан на основе библиотеки Bass.dll | D-fens | Мультимедиа в Delphi | 4 | 08.06.2007 20:36 |