Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Audioaufnahme - Keine Berechtigung (https://www.delphipraxis.net/205338-ios-audioaufnahme-keine-berechtigung.html)

braunbaer 29. Aug 2020 19:10

iOS Audioaufnahme - Keine Berechtigung
 
Hallo Zusammen,

habe mir gerade das Audiorecording für Sprachaufnahmen in eine mobile App eingebaut.
Auf Android funktioniert dies einwandfrei.
Auf iOS kommt beim Start von microphone.StartCapture die Meldung : Fehler Keine Berechtigung zum Aufzeichnen von Audio.

In der Info.Plist steht die UsageDescription korrekt drinnen:
Code:
<key>NSMicrophoneUsageDescription</key>
   <string>Aufnehmen von Sprachinformationen</string>
Kennt jemand von euch das Problem - ich weiss mir grad keinen Rat mehr :(

Gab es eventuell eine Anpassung wegen den Berechtigungen - muss eine weitere Unit eingebunden werden?

Schon mal danke für jeden Tipp...

AuronTLG 31. Aug 2020 16:01

AW: iOS Audioaufnahme - Keine Berechtigung
 
Welche Delphi-Version verwendest du denn? Davon hängen nämlich die möglichen Probleme ab.

himitsu 31. Aug 2020 16:59

AW: iOS Audioaufnahme - Keine Berechtigung
 
Wenn die Angabe stimmt, Eine die 3,5 Jahre alt ist. :duck:

TurboMagic 31. Aug 2020 18:48

AW: iOS Audioaufnahme - Keine Berechtigung
 
Und ob der Poster mal in APples doku nachgeschaut hat ob diese Berechtigung nicht möglicherweise noch weitere braucht?

braunbaer 1. Sep 2020 07:11

AW: iOS Audioaufnahme - Keine Berechtigung
 
Sorry:
ich verwende das aktuelle Delphi Sydney 10.4
und ja, laut Apple muss die Permission abgefragt werden.

Dies habe ich inzwischen eingebaut:

FMicrophone deklaration:
Code:
FMicrophone: TAudioCaptureDevice;
im Create:
Code:
FMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
FMicrophone.OnPermissionRequest := actGrantPermission;
und die Ereignisprocedure:
Delphi-Quellcode:
procedure TForm1.actGrantPermission(ASender: TObject; const AMessage: string; const AAccessGranted: Boolean);
begin
  if AAccessGranted then
    FMicrophone.StartCapture
  else
    TDialogServiceAsync.ShowMessage('Bitte in den Einstellungen den Zugriff auf das Microfon erlauben!' + LineFeed + AMessage));
end;
Und um die Aufnahme zu starten, wird die Methode:
Delphi-Quellcode:
FMicrophone.RequestPermission;
aufgerufen.

Der Aufbau ist also ähnlich wie bei Android.
Vielleicht kann es ja jemand gebrauchen ;)

AuronTLG 1. Sep 2020 08:27

AW: iOS Audioaufnahme - Keine Berechtigung
 
Hm, der einzige Unterschied, der mir gerade auffällt ist, dass ich das StartCapture nicht im Permission-Ereignis ausführe, sondern dort nur eine Variable setze, die dann stattdessen abgefragt wird.
Eventuell würde ich dahingehend mal ein wenig herumprobieren.

Ansonsten, ganz allgemein: Hast du nach dem Upgrade auf 10.4 die ganzen Template-Dateien mal gelöscht, damit diese durch die neusten Versionen ersetzt werden? Das hat bei mir immer mal wieder zu Problemen geführt, wenn z.B. die info.plist veraltet war.

Rollo62 1. Sep 2020 10:47

AW: iOS Audioaufnahme - Keine Berechtigung
 
Zitat:

Zitat von AuronTLG (Beitrag 1472718)
Hm, der einzige Unterschied, der mir gerade auffällt ist, dass ich das StartCapture nicht im Permission-Ereignis ausführe,

Ja richtig, ich entkopple mittlerweile fast Alles zumindest über TThread.ForceQueue


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz