Вопрос тем, кто разобрался с bass.dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Вопрос тем, кто разобрался с bass.dll

Сообщение Def » 21.04.2006 (Пт) 15:39

Скачал версию 2.2 с исходниками. Сейчас мучаюсь - никак не получается объединить несколько примеров. Задача вот в чём:
Воспроизедение, эквалайзер, чтение битрейта, частоты дискретизации, продолжительности воспроизведения. В принципе всё это получилось, только одна беда - никак не могу добиться остановки, воспроизведения и паузы.
Call BASS_Stop, Call BASS_Start, Call BASS_ChannelPlay, Call BASS_ChannelPause, Call BASS_ChannelStop... всё перепробывал, не получается. Или одновременно воспроизводится несколько копий или эквалайзер не работает или, в случае с Call BASS_Stop, Call BASS_Start не могу добится паузы.
Не знаю, насколько популярно объяснил - если найдутся желающие помочь - скину исходник.
P.S. И ещё - как прочитать тэги с помощью этого dll?

Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Уря!

Сообщение Def » 22.04.2006 (Сб) 23:48

Со стопами, плеями и паузами разобрался. Намутил коде и запутался :). Тока непонятно для чего нужна Bass_ChannelPause, если она делает тоже, что и BASS_ChannelStop? Да и фиг с ней! :)

Пока не разобрался с чтением MP3-тэгов. Может у кого есть неодолимое желание помочь/подсказать? :)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 22.04.2006 (Сб) 23:56

Как сторонник FMOD - подсказать по BASS не могу :) Но у меня есть сомнения, что BASS читает теги.

Поиск...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Сообщение Def » 23.04.2006 (Вс) 16:21

А как сторонник FMOD, ты бы не смог скинуть несколько примеров работы с ним? :) Я слышал, что у FMOD возможностей больше, но примеров работы не нашёл :(

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.04.2006 (Вс) 17:37

На сайте FMOD есть SDK с примерами на C++, VB и полной справкой по всем API.

Вот если после прочтения SDK останутся вопросы - помогу :)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Сообщение Def » 23.04.2006 (Вс) 21:15

http://www.fmod.org/files/fmodapi40307win-installer.exe -ты про это говоришь? Если нет, скинь ссылку на закачку, плиз :)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.04.2006 (Вс) 21:36

Да, про это.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Сообщение Def » 24.04.2006 (Пн) 21:29

Ок, скачаю, поюзаю, если что, открою новую тему :)

З.Ы. Нашел пример чтения тегов, помоему на Delphy, мож кто может переделать под VB?

(* ---------- "The easy way" utility unit ---------- *):
unit B_ID3V1;

interface

uses
Windows, Messages, SysUtils, Classes;

type
// some standard definition
PID3V1Rec = ^TID3V1Rec;
TID3V1Rec = packed record
Tag: array[0..2] of Char;
Title: array[0..29] of Char;
Artist: array[0..29] of Char;
Album: array[0..29] of Char;
Year: array[0..3] of Char;
Comment: array[0..29] of Char;
Genre: Byte;
end;
const
// несколько стандартных "genre". Нужно закончить.
cID3V1FGenre: array[0..147] of string = ('Blues', 'Classic Rock',
'Country', 'Dance',..., 'Synthpop');

function BASSID3ToID3V1Rec(PC: PChar): TID3V1Rec;

implementation

function BASSID3ToID3V1Rec(PC: PChar): TID3V1Rec;
var
TempID3V1: TID3V1Rec; // only for a better checking
begin
// fill the record with some dummy chars
FillChar(Result, SizeOf(TID3V1Rec) - 1, '?');
// check to see if ther's something to map
if (PC = nil) then Exit;
// convert/copy to the record structure
TempID3V1 := PID3V1Rec(PC)^;
// check to see if it's really a ID3V1 Tag
// else just give the dummy record back
if SameText(TempID3V1.Tag, 'TAG') then Result := TempID3V1;
end;

(* ---------- How to use this function ---------- *)
var
ID3: TID3V1Rec;
//...
// after the Stream was initialized,
// f.e. with the function "BASS_StreamCreateFile(...)"
// after the Stream was initialized,
// f.e. with the function "BASS_StreamCreateFile(...)"
ID3:= BASSID3ToID3V1Rec( BASS_StreamGetTags(fStreamHandle, BASS_TAG_ID3) );
Showmessage(
'Title : ' + ID3.Title
'Artist : ' + ID3.Artist
'Year : ' + ID3.Year
'Comment : ' + ID3.Comment
'Genre : ' + cID3V1FGenre[ID3.Genre]
);

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 24.04.2006 (Пн) 21:38

Def
Delphy А мы такое не знаем :lol:
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 24.04.2006 (Пн) 21:43

А, значит таки читает... Не знал.

Зачем переводить, если ты ещё не смотрел FMOD? К тому же для чтения любых тегов достаточно знаний описания формата.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Def
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 28.08.2005 (Вс) 21:44

Сообщение Def » 25.04.2006 (Вт) 23:09

Я посмотрел fmod. В принципе есть такое, чего нет у bass (а может просто я не знаю всех возможностей bass'a ;)). Но я в примерах не нашёл эквалайзера. Попозжее займусь fmod'om вплотную, может догоню сам. А если нет, буим просить помощи :)

Тему, в принципе мона закрывать, вижу любителей bass'a не так много :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 189

    TopList