Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 03:17   #1
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию bass.dll в windows 7

в общем написал мини прожку и в нее нужно воспроизведение звука вихнуть..... вначале заюзал обычный медиаплеер но к сожалению нужен эквалайзер(вся прога на этом основана) решил использовать bass.dll подключил басс длл написал код но почимуто все время появляется ошибка и нехочет воспроизводить....
вот код только плеера
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    FileOpenDialog1: TFileOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure PlayerPlayFile(const FileName: string);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  channel: HSTREAM;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if FileOpenDialog1.Execute then PlayerPlayFile(FileOpenDialog1.FileName);
//if OpenDialog1.Execute then begin
//PlayerPlayFile('D:\instell\delphi\testPlayer\1.mp3');
   //OpenDialog1.FileName
//end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if  not BASS_Init(-1, 44100, 0, Handle, nil) then
	  begin
		  BASS_Free();
		  Halt;
	  end;


end;

procedure TForm1.PlayerPlayFile(const FileName: string);
  var FFileName: PChar;
begin
  if not FileExists(FileName) then Exit;

  FFileName:= PChar(FileName);

  if Channel <> 0 then begin
    BASS_ChannelStop(Channel);
    BASS_StreamFree(Channel);
    channel:=0;
  end;

  channel:= Bass_streamCreateFile(False,FFileName,0,0,0);

  if channel = 0 then begin
  MessageBox(0,'Ошибка загрузки файла',0,MB_OK or MB_ICONSTOP);
  Exit;
  end;

  if not BASS_ChannelPlay(channel, False) then
  MessageBox(0,'Ошибка воспроизведения файла',0,MB_OK or MB_ICONSTOP);

end;

end.
ошибка выходит на этапе
Код:
  channel:= Bass_streamCreateFile(False,FFileName,0,0,0);

  if channel = 0 then begin
  MessageBox(0,'Ошибка загрузки файла',0,MB_OK or MB_ICONSTOP);
  Exit;
  end;
в чем может быть причина и что делать?

вот лог и исходник:
Вложения
Тип файла: txt log.txt (15.4 Кб, 135 просмотров)
Тип файла: rar testPlayer.rar (150.2 Кб, 18 просмотров)

Последний раз редактировалось Virus191288; 26.11.2009 в 03:26.
Virus191288 вне форума Ответить с цитированием
Старый 26.11.2009, 12:03   #2
dani92
Форумчанин
 
Аватар для dani92
 
Регистрация: 17.02.2009
Сообщений: 132
По умолчанию

если тебе не плеер нужен, то используй MMSYSTEM, в фоном режиме воспроизводит звуки
Чат по локальной сети http://fmchat.ucoz.kz - протестируйте плиз)))
а так delphi эта лучшая система программирования
dani92 вне форума Ответить с цитированием
Старый 26.11.2009, 12:22   #3
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

dani92 я же написал вся программа будет построена на визуализации и как ты предлагаешь через MMSYSTEM сделать визуализацию?
Virus191288 вне форума Ответить с цитированием
Старый 26.11.2009, 13:14   #4
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

нечего не понимаю..... поставил делфи 7(до этого 2009 и 2010 были) и вс заработало....
Virus191288 вне форума Ответить с цитированием
Старый 26.11.2009, 13:43   #5
dani92
Форумчанин
 
Аватар для dani92
 
Регистрация: 17.02.2009
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Virus191288 Посмотреть сообщение
dani92 я же написал вся программа будет построена на визуализации и как ты предлагаешь через MMSYSTEM сделать визуализацию?
ты писал про эквалайзер
Цитата:
но к сожалению нужен эквалайзер(вся прога на этом основана)
Цитата:
нечего не понимаю..... поставил делфи 7(до этого 2009 и 2010 были) и вс заработало....
bass некорректно работает на этих версиях
Чат по локальной сети http://fmchat.ucoz.kz - протестируйте плиз)))
а так delphi эта лучшая система программирования
dani92 вне форума Ответить с цитированием
Старый 26.11.2009, 22:33   #6
b2soft
Упртй программер
Форумчанин
 
Регистрация: 26.11.2009
Сообщений: 150
По умолчанию

попробуй вместо channel:= Bass_streamCreateFile(False,FFileNa me,0,0,0)
написать
channel:= Bass_streamCreateFile(False,FFileNa me,0,0,BASS_UNICODE);

просто в новых версиях винды файл сохраняется в ЮНИКОДЕ попробуй, мне помогло
Помощь с кодом/лабами по С/С++
Контакты: ICQ 623334555 Skype: btwosoft; Mail: b2soft@yandex.ru
b2soft вне форума Ответить с цитированием
Старый 26.11.2009, 22:35   #7
b2soft
Упртй программер
Форумчанин
 
Регистрация: 26.11.2009
Сообщений: 150
По умолчанию

тоже самое BASS_UNICODE нужно прописывать с Делфи 2009 в Делфи 7 такой флаг BASS'a не нужен

но для Delphi 2009 и 2010 нужно писать BASS_UNICODE
Помощь с кодом/лабами по С/С++
Контакты: ICQ 623334555 Skype: btwosoft; Mail: b2soft@yandex.ru
b2soft вне форума Ответить с цитированием
Старый 27.11.2009, 07:48   #8
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Цитата:
просто в новых версиях винды файл сохраняется в ЮНИКОДЕ попробуй, мне помогло
Флаг этот нужен потому, что Делфи 2009 и Делфи 2010 имеют полную поддержку юникода. и потому когда вы указываете
Код:
channel:= Bass_streamCreateFile(False,FFileName,0,0,0)
в FFileName хранится путь и имя файла в формате юникод... И потому нужно указать BASS чтобы он понял эту строчку... А не потому что файлы хранятся в юникоде.
SalasAndriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bass.dll и windows 7 : проблемы и решения Garacio_cain Мультимедиа в Delphi 6 25.10.2009 19:36
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
BASS DLL ygy Мультимедиа в Delphi 4 29.09.2009 04:39
BASS.DLL VintProg Мультимедиа в Delphi 2 21.09.2009 16:36
bass.dll Elem Мультимедиа в Delphi 18 19.07.2009 11:04