Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Библиотека типа BASS


Автор: ShuVaS 7.2.2005, 00:15
вот взялся писать библиотеку типа БАСС ... чем лучше что бы она проигровала и тд .Незнаю с чего начать - подскажите . smile

Автор: Guest 7.2.2005, 08:14
ShuVaS А зачем тебе? Вон на Торри есть класс для проигрывания MP3 чем он тебя не устраивает? Я вот после бесплодных поисков в сети ничего удобнее не нашел, всякие там ocx не устраивают потому что их нада будет с софтом передавать, а те что нашел были все триальными и сломать не молучилось.

Автор: Satana 7.2.2005, 08:19
блин для модера пожалста отредактируйте предыдущее сообщение это был я smile

Автор: ShuVaS 7.2.2005, 08:41
Мне нада не только для мп3 .. Хочу вобщем сделать похожим на БАСС мою библиотеку.Так вот и спрашую какие функции нада вставлять(с использованием чего).ДиректX или MCI ?

Автор: Illusion Dolphin 7.2.2005, 09:48
Цитата

ДиректX или MCI ?

Ни то, ни другое, ИМХО. тебе просто нужно будет организавать чтение mp3 файлов ручками (ПОЛНОСТЬЮ). Декодировать mp3 (и все другие форматы) тоже нужно будет ручками, разве что вывод звука вероятно самому писать не придётся, абы ты привёл к формату wav... Для сабжа тебе придётся искать доки по mp3 формату, трукрту mp3 файла... Если ты напишешь хоть поддержку обычного mp3 (даже не VBR) - поделись с народом, а smile?

Автор: ShuVaS 7.2.2005, 15:45
Ты че ? TComponent написал юзая MCI процедуры проигрования!!!!И еще я понимаю что один топик один вопрос - токо вопрос тупой совсем с бегущей строкой (я уже задавал).Как мне сделать что бы она бесконечно крутилась .... И на счет кулибы - че не кто не знает ?

Автор: Illusion Dolphin 8.2.2005, 09:49
Цитата

TComponent написал юзая MCI процедуры проигрования

Немного не понял фразы... Но в любом случае используя только MCI mp3 играть в винь 95 98 NT 2003 (да ещё и Ме судя по всему) не будет smile
Цитата

око вопрос тупой совсем с бегущей строкой

А что у тебя где бежитф? Покажи код...

Автор: ShuVaS 8.2.2005, 11:28
ща вот смотри - жто по потоку
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Edit2: TEdit;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 TmyThread.Create(false);

end;

end.





unit Unit2;

interface

uses
 Classes, SysUtils, Forms;

type
 TmyThread = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
 end;
Var
Thread: TmyThread;

implementation

uses Unit1;

{ Important: Methods and properties of objects in visual components can only be
 used in a method called using Synchronize, for example,

     Synchronize(UpdateCaption);

 and UpdateCaption could look like,

   procedure TmyThread.UpdateCaption;
   begin
     Form1.Caption := 'Updated in a thread';
   end; }

{ TmyThread }

procedure TmyThread.Execute;
Var
I:Integer;
begin
 { Place thread code here }
with Form1 do
For I:=0 to Length(Edit1.Text) do begin
  Edit2.Text:=Copy(Edit1.Text, I,10);
  sleep(200);
  application.ProcessMessages;
end;//For I:=0 to Length(Edit1.Text) do begin
// Thread.
end;

end.




а вот по таймеру -
Код


var i:integer;

procedure TfrMain.FormCreate(Sender: TObject);
begin
i:=1;
end;

procedure TfrMain.Timer3Timer(Sender: TObject);
var GoString:string;
   LengthGoString:word;
begin
if n9.Checked then
 begin GoString:= ExtractFileName(Player.Filename) +' *** ' + ExtractFileName(Player.Filename)+' *** ' + ExtractFileName(Player.Filename)+ ' *** ';
       LengthGoString:=36;
       pnlCaption.Caption:=Copy(GoString,i,LengthGoString);
       Inc(i);
        if Length(GoString)-LengthGoString < i then i:=1;
 end;
end;



Вопрос - что быстрее и лучше и как сделать что бы бесконечно крутилась - как в винампе

Автор: oleg1973 8.2.2005, 11:40
ShuVaS
яб начал с чегонить простого
к примеру с mod/xm форматов, они хорошо документированы в инете куча инфы и примеров по работе с ними,сэмплы там не пакованые,хранятся в wav формате , так что проиграть их не составит труда

Автор: Snowy 9.2.2005, 11:39
Ну не сказал бы, что XM это так просто.
Просто имею некоторый опыт работы с трекерной музыкой...
Я бы не взялся писать такой модуль.
Работы море, а смысла ни на дюйм.
Все уже написано.
Если брать XM, то как:
- плавные переходы слевого на правый канал
- изменение темпа по ходу воспроизведения
- банальное воспроизведение вавов с разной скоростью
- одновременное воспроизведение 48 каналов?
Да много чего. С MP3 гораздо проще работать, чем с трекерной музыкой.
MP3 уже готовый звук, а трекерную музыку нужно компилировать - это ж исходняк.

Да и вообще самому реализовывать воспроизведение разных типов файлов - дурацкая затея.
Даже еще более дурацкая, чем написание своего BASS.
Тем более с таким запасом знаний и опыта.

Автор: ShuVaS 9.2.2005, 12:31
Млин я вроде спрашивал на чем лучше , а не как вы оцениваете мои знания - BASS тоже лет 6 писали

Автор: oleg1973 9.2.2005, 13:15
Snowy
нивижу ничего сложного в написании плеера mod/xm
я под дос даже както делал (дааавно правдо)
Цитата
а трекерную музыку нужно компилировать - это ж исходняк

какой там исходнаяк????
патерны+сэмплы
береш патерн смотриш какой сэмпл и как его играть

Автор: Snowy 9.2.2005, 14:36
А как их сводить? Как накладывать эффекты?
Нюансов там много. Примитивно играть можно, но звук будет отличен от оригинального.
Для простых мелодий конечно. Но, если xm сложен профессионально, то уже будет расхождение по звучанию с тем же BASS.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)