Перейти к содержанию
Fire Monkey от А до Я

Ingalime

Пользователи
  • Постов

    354
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Сообщения, опубликованные Ingalime

  1. Спасибо. Буду пробовать.

    А том, что с URL все нормально, можно проверить так:

    1. Загрузить ZIP файл.
    2. Открыть - P.R.Chernivtsi - .m3u с помощь MCP player. Будет слышна музыка. В заголовке окна плеера : 91.199.194.34:8000. Значит MCP исхитрился и все сделал как надо...
    3. Открыть - P.R.Chernivtsi - .m3u c помощью Блокнота. Там увидим http://91.199.194.34:8000.
    Проект для Windows+Bass, работает нормально по этому URL. Слышно музыку... А вот в ведроиде не хочет...

     

    - P.R.Chernivtsi - .zip

  2. Спасибо. У меня проект расположен в папке C:\Users\Lena\Documents\Embarcadero\Studio\Projects\delphi82

    Наверное надо будет поправить пути которые у меня для проекта как на картинке.

    Сам архив великоват из-за SO файлов. Тут: http://nsnllc.um.la/delphi82.zip

    Просьба попробовать откомпилировать в режиме релиза также. В режиме релиза вылазит ошибка не связанная с проектом и очень странная. В эмбаркедеро молчат:

    https://community.idera.com/developer-tools/platforms/f/android-platform/73450/strange-error

     

     

    path.jpg

  3. При текущем коде, показывает цифру 5. Судя по ссылке: http://www.un4seen.com/doc/#bass/BASS_ErrorGetCode.html

    это BASS_ERROR_HANDLE. ?

     

    procedure TForm1.Button1Click(Sender: TObject);
    var
      M: TMarshaller;
    
    begin
    
     BASS_StreamFree(str);
     //str := BASS_StreamCreateURL(M.AsAnsi('http://91.199.194.34:8000').ToPointer, 0, 0, nil, nil);
     str := BASS_StreamCreateURL(('http://91.199.194.34:8000'), 0, 0, nil, nil);
     //str := BASS_StreamCreateURL(Pchar('http://91.199.194.34:8000'), 0, 0, nil, nil);
     //str := BASS_StreamCreateURL(PChar('http://91.199.194.34:8000'),0,BASS_STREAM_STATUS or BASS_UNICODE,nil,nil);
    
     if(str = 0) then
      begin
        ShowMessage('Проблема!');
      end;
    
     BASS_SetVolume(TrackBar1.Value/100.0);
     BASS_ChannelPlay(str, True);
     ShowMessage(IntToStr(BASS_ErrorGetCode));
    
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     BASS_ChannelStop(str);
     BASS_SampleFree (smp);
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     TrackBar1.Value := 10;
    
    
     if not BASS_Init(-1, 44100, 0, nil, nil) then
    	  ShowMessage('Не удалось инициализировать audio!');
    end;

     

  4. Во всех трех вариантах вижу ShowMessage. ?

    //str := BASS_StreamCreateURL(M.AsAnsi('http://91.199.194.34:8000').ToPointer, 0, 0, nil, nil);
    //str := BASS_StreamCreateURL(('http://91.199.194.34:8000'), 0, 0, nil, nil);
      str := BASS_StreamCreateURL(Pchar('http://91.199.194.34:8000'), 0, 0, nil, nil);
    
     if(str = 0) then
      begin
        ShowMessage('Проблема!');
      end;

     

  5. Прошу не пинать, это мой первый код на паскале. Не могу понять, как проверить, что str: HSTREAM инициализировалась нормально. Мой if ошибочен: Operator not applicable to this operand type

    //function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM;
     str: HSTREAM;
    
    implementation
    
    {$R *.fmx}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      M: TMarshaller;
    
    begin
    
     BASS_StreamFree(str);
     str := BASS_StreamCreateURL(M.AsAnsi('http://publicradio.mybb.online').ToPointer, 0, 0, nil, nil);
     if(str = nil) then
      begin
        ShowMessage('Проблема!');
      end;
    
     BASS_SetVolume(TrackBar1.Value/100.0);
     BASS_ChannelPlay(str, True);
    end;

     

  6. Создание приложения для Андроид с использованием BASS.
    1. Скачиваем с офф.сайта архивы для Андроид и Windows.
    2.
    a) Для Дельфи 10.3.3 открываем из архива для Windows файл bass.pas. Вместо AnsiChar пишем Byte, место PAnsiChar пишем MarshaledAString. Это для версии Дельфи 10.3.3.
    b) Для С++ Builder 10.3.3 открываем bass.h и комментируем объявление //typedef uint32_t DWORD;
    с) Включаем эти файлы в проект uses/include.
    3. Добавляем в Deployment проекта файлы SO из папок armeabi/armeabi-v7a/arm64-v8a и указываем в Deployment пути Remote path (library\lib\armeabi-v7a и других).
    4. В опциях проекта добавляем в Seach Path путь к папке arm64-v8a.

  7. А как правильно добавить SO файлы?

    The BASS libraries (libbass.so) aren't included in that APK file - they should be alongside the libPublicRadio.so files under the lib folder. I'm not a Delphi user myself, so I'm afraid I'm unfamiliar with how you should do this but you basically need to tell it to include the BASS libraries in your app.

    Добавила как на картинке. Что упущено?

     

    bass.jpg

  8. 5 минут назад, krapotkin сказал:

    на 10.3.3 и Redmi 5А все абсолютно штатно шло, проверял

    На скриншоте вкладка SDK Android 64-bit, 5А - старый, 32-битный

    А галочка в настройках вроде должна ему помочь Generate Android App Bundle file (arm + arm64) = true?

    Еще заметила у вас ошибка IllegalArgumentException, а у меня UnsatisfiedLinkError. Не понятно...

  9. У меня похожая проблема. Xiaomi Redmi 5А Android 8.1. Дельфи 10.3.3. Как исправить не знаю.:(

    java.lang.UnsatisfiedLinkError: Unable to load native library "/data/app/com.embarcadero.PublicRadio-4y7RRJgE_6Kqam1AqOIbFQ==/lib/arm64/libPublicRadio.so": null
        at android.app.NativeActivity.onCreate(NativeActivity.java:174)
        at com.embarcadero.firemonkey.FMXNativeActivity.onCreate(FMXNativeActivity.java:106)
        at android.app.Activity.performCreate(Activity.java:7088)
        at android.app.Activity.performCreate(Activity.java:7079)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2895)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1616)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:6651)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

     

    ndk.jpg

  10. Хочу попробовать переписать на Дельфи. Помогите, пожалуйста, исправить bass.pas, чтобы откомпилировать.

    [DCC Error] bass.pas(543): E2003 Undeclared identifier: 'PAnsiChar'

      // Device info structure
      BASS_DEVICEINFO = record
        name: PAnsiChar;    // Ошибка
        driver: PAnsiChar;  // driver
        flags: DWORD;
      end;

    bass.zip

  11. В общем для Windows как-то так. Может кому пригодиться:

    #include <fmx.h>
    #pragma hdrstop
    
    #include "bass.h"
    #include "Unit1.h"
    
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.fmx"
    TForm1 *Form1;
    
    HSAMPLE smp;
    HSTREAM str;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    {
     TrackBar1->Value = 10;
    }
    //---------------------------------------------------------------------------
    
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     BASS_Init(-1, 44100, BASS_DEVICE_3D, 0, NULL); //Инициализация звукового потока
     str=BASS_StreamCreateURL(PAnsiChar("http://путь"), 0, 0, NULL,0); //Создаем поток str.
     BASS_SetVolume(TrackBar1->Value/100.0);
     BASS_ChannelPlay(str, false); //Воспроизвести наше звуковой поток str
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
     BASS_ChannelStop(str); //Остановка
     BASS_SampleFree (smp); //Чистим ресурс
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::TrackBar1Change(TObject *Sender)
    {
      BASS_SetVolume(TrackBar1->Value/100.0);
    }
    //---------------------------------------------------------------------------

    Теперь буду пробовать для Андроида портировать...

  12. Вроде с BASS получаеться проигрывает нужный мне адрес:

    #include "bass.h"
    
    HSAMPLE smp;
    HSTREAM str;
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     BASS_Init(-1, 44100, BASS_DEVICE_3D, 0, NULL); //Инициализация звукового потока
     str=BASS_StreamCreateURL(PAnsiChar("http://путь к нужной станции"), 0, 0, NULL,0); //Создаем поток str. 
     BASS_ChannelPlay(str, False); //Воспроизвести наше звуковой поток str
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
     BASS_ChannelStop(str); //Остановка
     BASS_SampleFree (smp); //Чистим ресурс
    }
    //---------------------------------------------------------------------------

    Пока пробую с Windows, но у BASS и для Андроида есть файлы...

    Пока не разобралась как с помощью TrackBar менять громкость.

  13. Честно говоря, не понимаю о чем речь... Я делаю пуш уведомления согласно статье ZyBY с этого сайта:

    http://fire-monkey.ru/topic/3840-статья-настройка-пуш-уведомлении-через-сервис-firebase-для-android-и-ios-часть-2/

    Все работает, но не показывает ярлык уведомления на иконке приложения на экране мобильного телефона IOS. Ни о каком JSON объекте в статье речь не идет, а мой код выше не показывает ярлык уведомления на экране у приложения...

    Как правильно в этой статье?

  14. 5 часов назад, gonzales сказал:

    Похоже все таки не до конца прикрутили работу с AppStore. Попробовал по приколу выложить приложение, XCode у меня 11.3.1, получаю ошибку, Invalid Bungle. Your app supports Multitasking on iPad, so you must include the UILaunchStoruboardName key in your bungle.

    Кто-нить понимает, о чем речь?

    Тут дело не в дельфи. Похоже надо настроить в опциях проекта ориентацию экрана. Нечто похожее у людей тут и без дельфи:

    https://stackoverflow.com/questions/32559724/ipad-multitasking-support-requires-these-orientations/32941136

  15. Подскажите, пожалуйста, с фреймами. Вот сделала шаблон фрейма с нужными данными. А как потом это отобразить? Например надо отобразить 10 раз фрейм с различными данными. Надо вычислять высоту фрейма и располагать один под другим на форме или как?

×
×
  • Создать...