Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
1

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

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

Author24 — интернет-сервис помощи студентам
Есть код воспроизведения,
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2012, 22:10
Ответы с готовыми решениями:

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

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

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

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

38
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 18:00  [ТС] 21
Author24 — интернет-сервис помощи студентам
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
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 18:06 22
Поройся в Басс может там есть то что говорит о том что песня уже закончилась.
Либо найди как узнать длительность песни и ставь таймер на это время с запасом...
1
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 19:52  [ТС] 23
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
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 19:56 24
Код
BASS_FXSetParameters(fx[10], @p);
Если этот код с делфей то "@p" это *p или &p, но не уверен
А p это структура или класс.
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 19:59  [ТС] 25
нет, не в этом дело, у меня стоит конечно BASS_FXSetParameters(fx[1], &p);
Просто что это за p?
[BCC32 Error] Unit2_pl.cpp(37): E2451 Undefined symbol 'p'
как эту заразу объявить? с простым объявлением не катит.
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 20:05 26
Пишешь
C++
1
BASS_FXSetParameters(
Потом Ctr+Space и знаток кода должен подсказать что за тип переменной p
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 21:39  [ТС] 27
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
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 21:45 28
C++
1
2
3
4
5
BASS_DX8_PARAMEQ  PEZ;
PEZ.fCenter = 500;
PEZ.fGain = eq5.Position;
//...
BASS_FXSetParameters(/*....*/, &PEZ);
1
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 21:56  [ТС] 29
Работает, только издает какие то очень уж странные звуки DD
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 21:57 30
Параметры правильно настрой
C++
1
2
PEZ.fCenter = ???;
PEZ.fGain = ???;
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
15.05.2012, 23:28  [ТС] 31
Да значения меняю, а ни хрена не меняется. (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
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.05.2012, 23:31 32
Ну а что собственно означает fBandwidth ?
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:02  [ТС] 33
я точно не знаю, но от него все плохо, без него ничего не паШет

Добавлено через 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
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 19:15 34
Читай мануал по Басс, и гугли "Характеристики звука"
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:21  [ТС] 35
я обгуглил 90% гугла
0
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
16.05.2012, 19:28  [ТС] 36
мб у кого пойдет, просто послушайте(добавляйте болье трех песен) поменяйте значение первых двух скрол баров, вот что за жуть?
Вложения
Тип файла: rar Project1_11.rar (96.4 Кб, 12 просмотров)
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 19:48 37
я обгуглил 90% гугла
Да ладно...а 10% оставил мне
http://www.un4seen.com/doc/

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


Цитата Сообщение от Avazart Посмотреть сообщение
Ещё Компиляция программы под С++ Builder,чтобы работала на других компьютерах! не у всех 6-й Builder стоит
- это то ясно)) у меня xe2 )
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 21:09 39
у меня xe2 )
Ну это не важно, важно что на других компах не запускатся на которых нет XE
0
16.05.2012, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2012, 21:09
Помогаю со студенческими работами здесь

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

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

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

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

Drag and drop
У меня есть нарисованная разметка состоящая из клеточек количеством 32 на 16. На ней в случайном...

Drag and drop
Разрабатываю практическое задание по химии, суть заключается в чем: есть картинки с определенными...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru