Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   .wav auf FM ok, auf Mobile Flop (https://www.delphipraxis.net/185518-wav-auf-fm-ok-auf-mobile-flop.html)

Sel2012 18. Jun 2015 20:30

AW: .wav auf FM ok, auf Mobile Flop
 
Zitat:

Zitat von mkinzler (Beitrag 1305609)
Die Systempartition ist auch versteckt. Lass die Dateien nach \assets\internal bereitstellen, dann findest Du diese im Programm mit
Delphi-Quellcode:
TPath.Combine(TPath.GetDocumentsPath, 'filename')

Mit "\assets\internal" hängt alles, mit "assets\internal" läut's wie gehabt.

Mein Code ist:

procedure TForm7.Button1Click(Sender: TObject);
begin
TPath.Combine(TPath.GetDocumentsPath, 'a.wav'); { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'a.wav'); { External }
mediaPlayer1.FileName:= 'a.wav';
mediaPlayer1.Play;
end;

(ich meine, das ist gut lesbar). :-D
Ich kann auch die ersten beiden Zeilen trennen - das Ergebnis bleibt gleich.

mkinzler 18. Jun 2015 20:39

AW: .wav auf FM ok, auf Mobile Flop
 
Du musst die entscheiden, welchen Pfad Du willst (internal/external; \assets\internal ist internal)

Delphi-Quellcode:
mediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'a.wav');

Sir Rufo 18. Jun 2015 20:57

AW: .wav auf FM ok, auf Mobile Flop
 
Zitat:

Zitat von Sel2012 (Beitrag 1305613)
procedure TForm7.Button1Click(Sender: TObject);
begin
TPath.Combine(TPath.GetDocumentsPath, 'a.wav'); { Internal }
TPath.Combine(TPath.GetSharedDocumentsPath, 'a.wav'); { External }
mediaPlayer1.FileName:= 'a.wav';
mediaPlayer1.Play;
end;

(ich meine, das ist gut lesbar). :-D
Ich kann auch die ersten beiden Zeilen trennen - das Ergebnis bleibt gleich.

Wenn du das meinst, dann ist das so ...
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
begin
  TPath.Combine(TPath.GetDocumentsPath, 'a.wav'); { Internal }
  TPath.Combine(TPath.GetSharedDocumentsPath, 'a.wav'); { External }
  mediaPlayer1.FileName:= 'a.wav';
  mediaPlayer1.Play;
end;
Meine Meinung: Freundliche Fragesteller setzen ihren Code in die Delphi-Tags, allen Anderen empfehle ich es, sonst überlese ich einfach deren Beiträge.

Sel2012 19. Jun 2015 08:34

AW: .wav auf FM ok, auf Mobile Flop
 
[QUOTE=Sir Rufo;1305615]
Zitat:

Zitat von Sel2012 (Beitrag 1305613)

(ich meine, das ist gut lesbar). :-D

Meine Meinung: Freundliche Fragesteller setzen ihren Code in die Delphi-Tags, allen Anderen empfehle ich es, sonst überlese ich einfach deren Beiträge.

Tschulligung, als unbedarfter Forenschreiber hatte ich die gewünschte oder auch sinnvolle Etikette des Codes nicht gekannt, bzw. deren Bedeutung falsch eingeschätzt. Ich musste erst einmal suchen, wie das geht. :-D
Das war keine Ignoranz oder böse Absicht.

Der Eintrag des RemotePfades in der Bereitstellung geht nur mit "assets\internal" und nicht mit "\assets\internal".
Meine Abfrage des Tabletpfades steht unten und das Ergebis lautet: /data/data/com.embarcadero.Media2x/files/a.wav
Die Pfadangabe im Tabletexplorer lautet aber: G:\Android\data\com.embarcadero.Media2x\files
Der zweite data-Ordner fehlt dort in der Anzeige. Folglich kann ich auch a.wav nicht finden. Auf jeden Fall ist nix zu hören.

Im Vergleich mit FireMonkey ist dort zwar Musik zu hören, aber nur wenn ich die in Mobile funktionierende Abfrage des Pfades
ausschalte. Sonst kommt dort:"Datei nicht gefunden". Wieso sind die Codes nicht übertragbar? Da kommt man sich immer wieder vor wie in der Geisterbahn - lauter Überraschungen.

FirMonkey Mobile:
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);
begin
//TPath.Combine(TPath.GetDocumentsPath, 'a.wav'); { Internal }
//TPath.Combine(TPath.GetSharedDocumentsPath, 'a.wav'); { External }

 mediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'a.wav');
 Label1.Text:= mediaPlayer1.FileName ; //bis hierhin klappt's

 mediaPlayer1.Play; //kein Ton
end;
FireMonkey:
Delphi-Quellcode:
procedure TForm7.Button1Click(Sender: TObject);

begin
 // MediaPlayer1.FileName := 'a.wav'; //das würde funktionieren

  mediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'a.wav');//das bringt die Fehlermeldung
  Label1.Text:= mediaPlayer1.FileName ;

    MediaPlayer1.Play;
end;

Daniel 19. Jun 2015 08:41

AW: .wav auf FM ok, auf Mobile Flop
 
Ehm ... probier das mal mit einer MP3-Datei aus.
Android hat von Haus aus offenbar keine Unterstützung für Wave-Dateien.

Sel2012 19. Jun 2015 09:27

AW: .wav auf FM ok, auf Mobile Flop
 
Zitat:

Zitat von Daniel (Beitrag 1305651)
Ehm ... probier das mal mit einer MP3-Datei aus.
Android hat von Haus aus offenbar keine Unterstützung für Wave-Dateien.

Doch, unkonprimierte .wavs sollen funktionieren. Das erklärt auch nicht, warum der Pfad anders ist als in der Explorer-Anzeige.
Ich vermute, dass "MediaPlayer1.Play" wieder nicht zur Mobile-Syntax passt.

Der schöne Günther 19. Jun 2015 09:35

AW: .wav auf FM ok, auf Mobile Flop
 
Was ist denn eine "Mobile-Syntax"?

Ich will kein Schlaumeier sein, aber nur mal zu TMediaPlayer in die Doku geschaut, und da steht
Zitat:

In order to play an audio file using TMediaPlayer, use the appropriate format:
- .wav on Windows
- .caf on iOS and Mac OS X
- .3GP on Android
Woher nimmst du, dass "unkomprimierte WAVs" auf z.B. Android funktionieren sollen?

Sel2012 19. Jun 2015 10:04

AW: .wav auf FM ok, auf Mobile Flop
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Der schöne Günther (Beitrag 1305662)
Was ist denn eine "Mobile-Syntax"?

Woher nimmst du, dass "unkomprimierte WAVs" auf z.B. Android funktionieren sollen?

Eine Syntax, die in FireMonkey funktioniert und sonst nicht.

Ich finde im Moment nicht die richtige Android-Seite, siehe aber hier:

Mavarik 19. Jun 2015 10:07

AW: .wav auf FM ok, auf Mobile Flop
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1305662)
Woher nimmst du, dass "unkomprimierte WAVs" auf z.B. Android funktionieren sollen?

Ein Blick in den Source FMX.Media.Abdroid.pas

Delphi-Quellcode:
  TMediaCodecManager.RegisterMediaCodecClass('.mov', SVMOVFiles, TMediaType.Video, TAndroidVideoCodec);
  TMediaCodecManager.RegisterMediaCodecClass('.m4v', SVM4VFiles, TMediaType.Video, TAndroidVideoCodec);
  TMediaCodecManager.RegisterMediaCodecClass('.mp4', SVMP4Files, TMediaType.Video, TAndroidVideoCodec);
  TMediaCodecManager.RegisterMediaCodecClass('.3gp', SV3GPFiles, TMediaType.Video, TAndroidVideoCodec);
  TMediaCodecManager.RegisterMediaCodecClass('.mp3', SVMP3Files, TMediaType.Audio, TAndroidMediaCodec);
  TMediaCodecManager.RegisterMediaCodecClass('.caf', SVCAFFiles, TMediaType.Audio, TAndroidMediaCodec);
Und schon ist die Frage beantwortet...

Daniel 19. Jun 2015 10:15

AW: .wav auf FM ok, auf Mobile Flop
 
http://developer.android.com/guide/a...a-formats.html

In der Tat ist es so, dass ab Android 4.1 PCM/WAVE-Dateien unterstützt:
Zitat:

8- and 16-bit linear PCM (rates up to limit of hardware). Sampling rates for raw PCM recordings at 8000, 16000 and 44100 Hz.
Dennoch findet man mit Tante Google eine hinreichende Menge an Einträgen, in denen sich Nutzer von z.B. Samsung-Geraten darüber beklagen, dass das mit den Wave-Dateien genau nicht geht. Jenseits davon, dass FMX dies offenbar eh nicht hergibt, scheint da grundsätzlich etwas im Argen zu sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.
Seite 2 von 3     12 3      

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