01-12-2023, Saat: 10:07
(Son Düzenleme: 01-12-2023, Saat: 10:07, Düzenleyen: kajmerantime.)
Merhaba, iyi forumlar herkese.
Delphi 11 Fmx'te Intent ile android cihazdan ses dosyası seçtiriyorum. Seçtiğim dosyanın adını ve yolunu şu şekilde tek bir fonksiyon içinde yazdım. Yani seçme işlemi oluyor. Fakat Dosya Yolunu bulamıyor hatası alıyorum.
Seçtiğim dosyanın dosya yolu document/21/android:123213/FileName.mp3 şeklinde geliyordu. Android:123213 kısmını sildiriyorum. Altta görüldüğü üzere.
Kodu okuttuğum kısımda alttaki fonksiyonda:
Şimdiden teşekkür ederim.
Dipnot: Dosya Adı ve Dosya Yolunu alma konusunda @emozgun hocamdan yararlandım. Github kodlarını incelemenizi tavsiye ederim
Delphi 11 Fmx'te Intent ile android cihazdan ses dosyası seçtiriyorum. Seçtiğim dosyanın adını ve yolunu şu şekilde tek bir fonksiyon içinde yazdım. Yani seçme işlemi oluyor. Fakat Dosya Yolunu bulamıyor hatası alıyorum.
Seçtiğim dosyanın dosya yolu document/21/android:123213/FileName.mp3 şeklinde geliyordu. Android:123213 kısmını sildiriyorum. Altta görüldüğü üzere.
function TfrmGAyarlar.FileName(Uri: JNet_Uri): string; var C: JCursor; LPath, LName: string; begin Result := ''; try C := AndroidApi.Helpers.TAndroidHelper.Activity.getContentResolver.query(Uri, nil, nil, nil, nil, nil); if (C = nil) then exit; try C.moveToFirst; LName := JStringToString(C.getString(C.getColumnIndex(TJOpenableColumns.JavaClass.DISPLAY_NAME))); if not (LName = '') then begin LPath := JStringToString(uri.getPath()); Showmessage(LPath); var LStr := LPath.Remove(LPath.LastIndexOf('/') + 1); Result := TPath.Combine(LStr, LName); end; finally C.close; end; except on E: Exception do ShowMessage('AudioFileName içinde hata: ' + E.Message); end; end;
Kodu okuttuğum kısımda alttaki fonksiyonda:
procedure TfrmGAyarlar.AudioSecimOku(Data: JIntent); var Uri: Jnet_Uri; A: string; begin try if Data.getData <> nil then begin Uri := Data.getData(); A := FileName(Uri); MediaPlayer1.FileName := A; MediaPlayer1.Play; end; except on E: Exception do ShowMessage('GaleriSecimOku içinde hata: ' + E.Message); end; end;
Şimdiden teşekkür ederim.
Dipnot: Dosya Adı ve Dosya Yolunu alma konusunda @emozgun hocamdan yararlandım. Github kodlarını incelemenizi tavsiye ederim