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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2012, 16:27   #1
Dark_Observer
Новичок
Джуниор
 
Регистрация: 28.09.2012
Сообщений: 1
По умолчанию Bass и FireMonkey

Всем привет я пишу аудио плеер на основе библиотеки BASS в IDE Delphi XE2 при этом проект является firemonkey hd application и уже при первой компиляции столкнулся с проблемой : BASS инициализируется , поток из файла по идеи создается ,а дальше при попытке воспроизвести поток ничего не происходит - звук отсутствует.

Код:
unit PlayerMainUnit1;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, Bass;
 
type
  TForm1 = class(TForm)
    StyleBookMainForm1: TStyleBook;
    Button1Play: TButton;
    Button2Pause: TButton;
    Button3Back: TButton;
    Button4Next: TButton;
    Button5Stop: TButton;
    Button6Open: TButton;
    OpenFileDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button6OpenClick(Sender: TObject);
    procedure Button1PlayClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  audio_stream : HSTREAM;
 
implementation
 
{$R *.fmx}
 
//---------------------------------------------------------------------------
 
procedure TForm1.Button1PlayClick(Sender: TObject);
    
    Bass_ChannelPlay(audio_stream, false);
 
end;
 
//---------------------------------------------------------------------------
 
procedure TForm1.Button6OpenClick(Sender: TObject);
begin
    
if OpenFileDialog1.Execute() = true 
    then
    begin
 
        if audio_stream <> 0        
        then
        begin
            Bass_StreamFree(audio_stream); 
        end;
 
 
        audio_stream := BASS_StreamCreateFile(false,pansichar(AnsiString(OpenFileDialog1.FileName)),0,0,0);
     
    end;
 
end;
 
//---------------------------------------------------------------------------
 
procedure TForm1.FormCreate(Sender: TObject); 
begin
    if  not bass_init(-1,44100,0,Handle,nil)  
    then
        ShowMessage('Ошибка инициализации.');    
end;
 
procedure TForm1.FormDestroy(Sender: TObject);  
begin
    Bass_Free();
end;
 
//---------------------------------------------------------------------------
 
 
end.
Этот код выполняются в VCL проекте , но я использую FireMonkey и думаю , что проблема именно в этом. Возможно FireMonkey почему то конфликтует c BASS?
Dark_Observer вне форума Ответить с цитированием
Старый 28.09.2012, 22:17   #2
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Добавьте флаг поддержки юникода. Должно все работать.
Код:
audio_stream := BASS_StreamCreateFile(False, PWideChar(OpenDialog1.FileName), 0, 0, BASS_UNICODE);
kangreon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А где Firemonkey? GSirr О форуме и сайтах клуба 2 04.08.2012 00:19
Проблема с перетаскиванием формы в Firemonkey arxlex Общие вопросы Delphi 2 16.04.2012 04:36
Firemonkey и TApplication arxlex Общие вопросы Delphi 1 14.04.2012 11:00
Delphi XE2 firemonkey ST@LKER Общие вопросы Delphi 8 07.03.2012 23:47
FiremonKey не высвечивается форма george_jan Общие вопросы Delphi 1 21.02.2012 09:27