Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552

drag and drop плей листа (bass.dll)

12.05.2012, 22:10. Показов 3521. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код воспроизведения,
C++
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
#include <vcl.h>
#include "bass.h"
#pragma hdrstop
 
#include "Unit2_player.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
HSAMPLE samp;
HSTREAM chan;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 AnsiString b="C:\\olololo.mp3";
char *a=b.c_str();
chan=BASS_StreamCreateFile(FALSE, a, 0, 0, 0);
 
BASS_ChannelPlay(chan,FALSE);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::FormCreate(TObject *Sender)
{
 BASS_Init( -1,44100, BASS_DEVICE_3D,0,NULL);
}
Как при помощи события drag and drop у формы, создать так называемый плей лист, и дальнейшее воспроизведение его как поток
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2012, 22:10
Ответы с готовыми решениями:

Куда закинуть bass.dll,bass.h,bass.lib
Ребят, пересмотрел темы на форуме, гуглил, толком ничего не нашел. Собственно такая проблема, вот я скачал архив bass.zip, в нем находится...

Плей Лист на Delphi с bass.dll неполучаеться
Народ всем привет) и с праздником ! у меня таое дело : Я пишу мр3 проигрыватель с bass.dll и у меня появилась проблема : как создать в нём...

Bass.dll.net - Ошибка инициализации при обращении к Bass.dll
Создаю тестовое консольное приложение в точности по гайду:...

38
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 18:00  [ТС]
Студворк — интернет-сервис помощи студентам
Avazart, Лучший!

Добавлено через 53 минуты
C++
1
2
3
4
5
6
7
8
 if(OpenDialog1->Execute())
 {
  ListBox1->Items->AddStrings(OpenDialog1->Files);// или ListBox1->Items->Assign(OpenDialog1->Files);
 }
    AnsiString b = ListBox1->Items->Strings[ind];
    //AnsiString p1= SL->Strings[ListBox1->ItemIndex]+ListBox1->Items->Strings[ListBox1->ItemIndex];
char * p2 = b.c_str() ;
chan = BASS_StreamCreateFile(FALSE, p2, 0, 0, 0);
Все работает, только вот как после окончания песни включить следующюю песню автоматом. Пытался ставить события но ничего не выходит
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 18:06
Поройся в Басс может там есть то что говорит о том что песня уже закончилась.
Либо найди как узнать длительность песни и ставь таймер на это время с запасом...
1
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 19:52  [ТС]
C++
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
fx[1] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[2] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[3] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[4] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[5] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[6] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[7] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[8] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[9] = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
fx[10]= BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1);
 
p.fGain =15-Form1->TrackBar11->Position;
p.fBandwidth = 3;
p.fCenter = 80;
BASS_FXSetParameters(fx[1], @p);
 
p.fGain = 15-Form1->TrackBar10->Position;
p.fBandwidth = 3;
p.fCenter = 170;
BASS_FXSetParameters(fx[2], @p);
//3
p.fGain = 15-Form1->TrackBar9->Position;
p.fBandwidth = 3;
p.fCenter = 310;
BASS_FXSetParameters(fx[3], @p);
p.fGain = 15-Form1->TrackBar8->Position;
p.fBandwidth = 3;
p.fCenter = 600;
BASS_FXSetParameters(fx[4], @p);
 
p.fGain = 15-Form1->TrackBar7->Position;
p.fBandwidth = 3;
p.fCenter = 1000;
BASS_FXSetParameters(fx[5], @p);
 
p.fGain = 15-Form1->TrackBar6->Position;
p.fBandwidth = 3;
p.fCenter = 3000;
BASS_FXSetParameters(fx[6], @p);
 
p.fGain = 15-Form1->TrackBar5->Position;
p.fBandwidth = 3;
p.fCenter = 6000;
BASS_FXSetParameters(fx[7], @p);
 
p.fGain = 15-Form1->TrackBar4->Position;
p.fBandwidth =3;
p.fCenter = 10000;
BASS_FXSetParameters(fx[8], @p);
 
p.fGain = 15-Form1->TrackBar3->Position;
p.fBandwidth = 3;
p.fCenter = 12000;
BASS_FXSetParameters(fx[9], @p);
 
p.fGain = 15-Form1->TrackBar12->Position;
p.fBandwidth = 3;
p.fCenter = 14000;
BASS_FXSetParameters(fx[10], @p);
не подскажешь, чем тут может являться "p" ?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 19:56
Code
1
BASS_FXSetParameters(fx[10], @p);
Если этот код с делфей то "@p" это *p или &p, но не уверен
А p это структура или класс.
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 19:59  [ТС]
нет, не в этом дело, у меня стоит конечно BASS_FXSetParameters(fx[1], &p);
Просто что это за p?
[BCC32 Error] Unit2_pl.cpp(37): E2451 Undefined symbol 'p'
как эту заразу объявить? с простым объявлением не катит.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 20:05
Пишешь
C++
1
BASS_FXSetParameters(
Потом Ctr+Space и знаток кода должен подсказать что за тип переменной p
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 21:39  [ТС]
var p undefined
BASS_FXSetParameters(usigned long handle, const void* params)

Добавлено через 1 час 27 минут
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.eq5Change(Sender: TObject);
var
  PEZ: BASS_DX8_PARAMEQ;
begin
  BASS_ChannelRemoveFX(strs[i], DFX); // чтобы убрать предыдущую настройку
  DFX := BASS_ChannelSetFX(strs[i], BASS_FX_DX8_PARAMEQ, 1);
  PEZ.fCenter := 500; // частота регулируемой полосы (в герцах, от 80 до 16000)
  PEZ.fGain := eq5.Position; // задаваемое значение (от -15 до 15)
  BASS_FXSetParameters(DFX, @PEZ);
end;
тут как бы pez==p , как то же самое для C++ сделать ? как объявить?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 21:45
C++
1
2
3
4
5
BASS_DX8_PARAMEQ  PEZ;
PEZ.fCenter = 500;
PEZ.fGain = eq5.Position;
//...
BASS_FXSetParameters(/*....*/, &PEZ);
1
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 21:56  [ТС]
Работает, только издает какие то очень уж странные звуки DD
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 21:57
Параметры правильно настрой
C++
1
2
PEZ.fCenter = ???;
PEZ.fGain = ???;
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 23:28  [ТС]
Да значения меняю, а ни хрена не меняется. (PEZ.fBandwidth = 0 с ним все плохо).

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm2::TrackBar2Change(TObject *Sender)
{
 
 fx[1] = BASS_ChannelSetFX(chan, BASS_FX_DX8_PARAMEQ, 1);
 BASS_DX8_PARAMEQ  PEZ;
 PEZ.fGain =0-Form2->TrackBar2->Position;
 PEZ.fBandwidth = 3;
 PEZ.fCenter = 80;
 
 
 BASS_FXSetParameters(fx[1], &PEZ);
}
вот так настраиваю, но при каких бы значениях не стояли "центр и гаин " из за банд вид он коряжет звук.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 23:31
Ну а что собственно означает fBandwidth ?
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:02  [ТС]
я точно не знаю, но от него все плохо, без него ничего не паШет

Добавлено через 19 часов 29 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm2::TrackBar2Change(TObject *Sender) {
 
    //fx[1] = BASS_ChannelSetFX(chan, BASS_FX_DX8_PARAMEQ, 1);
    // BASS_DX8_PARAMEQ  PEZ;
    //PEZ.fGain = 0 - Form2->TrackBar2->Position;
    // PEZ.fBandwidth = 1;
    // PEZ.fCenter = 31;
 
    //BASS_FXSetParameters(fx[10], &PEZ);
    //PEZ.fCenter = 63;
 
    fx[1] = BASS_ChannelSetFX(chan, BASS_FX_DX8_PARAMEQ, 1);
    PEZ.fCenter = 80; // частота регулируемой полосы (в герцах, от 80 до 16000)
  PEZ.fGain = TrackBar2->Position; // задаваемое значение (от -15 до 15)
  BASS_FXSetParameters(fx[1], &PEZ);
}
Кто поможет?
Просто везде так настраивают, а у меня гудение вместо звука(
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 19:15
Читай мануал по Басс, и гугли "Характеристики звука"
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:21  [ТС]
я обгуглил 90% гугла
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:28  [ТС]
мб у кого пойдет, просто послушайте(добавляйте болье трех песен) поменяйте значение первых двух скрол баров, вот что за жуть?
Вложения
Тип файла: rar Project1_11.rar (96.4 Кб, 12 просмотров)
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 19:48
я обгуглил 90% гугла
Да ладно...а 10% оставил мне
http://www.un4seen.com/doc/

Добавлено через 11 минут
Ещё Компиляция программы под С++ Builder, чтобы работала на других компьютерах не у всех 6-й Builder стоит
1
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 21:01  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
http://www.un4seen.com/doc/
- огромное спасибо!


Цитата Сообщение от Avazart Посмотреть сообщение
Ещё Компиляция программы под С++ Builder,чтобы работала на других компьютерах! не у всех 6-й Builder стоит
- это то ясно)) у меня xe2 )
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 21:09
у меня xe2 )
Ну это не важно, важно что на других компах не запускатся на которых нет XE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2012, 21:09

Где взять bass.dll bass.lib for win64
Приветствую. Тут много тем было на эти вопросы , но ответа не нашел. Где можно и вообще есть ли bass.dll,bass.lib для Windows 8.1 64...

[Linker Error] 'E:\Programming\C++\BASS.DLL\BASS.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
Народ, подскажите пожалуйста, из-за чего ошибку билдер выбивает?? 'E:\Programming\C++\BASS.DLL\BASS.LIB' contains invalid OMF record,...

Сохранение плей листа
У меня есть код: На форме TTabControl, TListBox, TOpenDialog, и три кнопки: создать новый плейлист, добавить файлы в плейлист, удалить...

Выключение компьютера по окончании воспроизведения плей-листа Windows Media Player
Доброго времени суток! Скажите, уважаемые знатоки, можно ли создать скрипт который бы включал компьютер по окончании воспроизведения...

Drag drop
Нужно определить по какому именно слою щелкнул пользователь клавишей мыши, и затем этот объект должен двигаться вслед за мышью, пока...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru