Einzelnen Beitrag anzeigen

philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
861 Beiträge
 
Delphi 10.4 Sydney
 
#1

Audio-Session-Initialisierung für iOS

  Alt 21. Okt 2022, 13:58
Hi,

ich muss für einen Test mit einer Video-Chat-Software folgendes Settings vornehmen:
"Was Sie versuchen können, wäre, falls noch nicht gemacht, die AVAudioSession auf Mode AVAudioSession.Mode.videoChat einzustellen und die AVAudioSession.CategoryOption.mixWithOthers hinzuzufügen."

Grund ist, dass aktuell sobald ich den Video-Chat-Raum betrete, die in der App abgespielte Musik aufhört zu spielen.
Jetzt habe ich dies mit folgendem Code versucht:

Delphi-Quellcode:
procedure TicTrainerF.initIOSAudioSession();
var AudioSession: AVAudioSession;
    LErrorPtr: Pointer;
    LError: NSError;
    hasError: boolean;
begin
  mlog.info('initIOSAudioSession');
  hasError:=false;
  LErrorPtr := nil;
  AudioSession := TAVAudioSession.Wrap(TAVAudioSession.OCClass.sharedInstance);
  if (not hasError) then
  begin
    AudioSession.setMode(CocoaNSStringConst(libAVFoundation, 'AVAudioSessionModeVideoChat'),@LErrorPtr);
    if (LErrorPtr <> nil) then
    begin
      LError := TNSError.Wrap(LErrorPtr);
      mlog.info('initIOSAudioSession-Error (setMode): '+NSStrToStr(LError.localizedDescription));
      hasError:=true;
    end;
  end;
  if (not hasError) then
  begin
    AudioSession.setCategory(CocoaNSStringConst(libAVFoundation, 'AVAudioSessionCategoryOptionMixWithOthers'),@LErrorPtr);
    if (LErrorPtr <> nil) then
    begin
      LError := TNSError.Wrap(LErrorPtr);
      mlog.info('initIOSAudioSession-Error (setCategory): '+NSStrToStr(LError.localizedDescription));
      hasError:=true;
    end;
  end;
  if (not hasError) then
    mlog.info('initIOSAudioSession: finished successfully');
end;
Ich bekomme bei den Aufrufen aber einen OSStatus-Fehler -50 Fehler zurück.
Was ist hier noch falsch?

Grüße, Philipp
  Mit Zitat antworten Zitat