Audio-Video in FireMonkey
Nach oben zu FireMonkey-Anwendungshandbuch
Inhaltsverzeichnis
FireMonkey unterstützt die Aufnahme und Wiedergabe von Mediadateien (Audio/Video).
Dieses Feature ist für Windows- und macOS-Plattformen wie folgt verfügbar:
- Die Windows-Implementierung verwendet DirectShow, und das Audio/Video-Feature arbeitet mit jeder Windows-Version.
- Die macOS-Implementierung verwendet nun AVFoundation, da Apple QuickTime als veraltet erklärt hat.
Unterstützte Dateiformate
Mediendateien sollten in den folgenden Formaten gespeichert und verwendet werden:
.wav
für Windows.caf
für iOS und Mac.3GP
für Android
Sie können auch andere Mediendateitypen, wie z.B. MP3-Dateien, wiedergeben. Beispielsweise haben Android-Videodateien normalerweise das Format H.263
.
Aufnahme von Audio und Video
Die Basisklasse für Aufnahmegeräte ist TCaptureDevice. Diese Klasse kapselt die grundlegenden Methoden und Eigenschaften für Aufnahmegeräte. TAudioCaptureDevice und TVideoCaptureDevice erweitern die TCaptureDevice-Implementierung um spezifisches Verhalten für Audio-Aufnahmegeräte (wie Mikrofone) bzw. Video-Aufnahmegeräte (wie Webkamera).
TCaptureDeviceManager wurde für den Zugriff und die Verwaltung von Aufnahmegeräten eingeführt. TCaptureDeviceManager stellt bestimmte Methoden und Eigenschaften für Folgendes bereit:
- Zugreifen auf Geräte nach Typ:GetDevicesByMediaType.
- Zugreifen auf Standardgeräte: GetDefaultDeviceByMediaType, DefaultVideoCaptureDevice, DefaultAudioCaptureDevice.
- Zugreifen auf Geräte nach Name: GetDevicesByName.
- Abrufen der verfügbaren Mediengeräte: Devices.
Das aktuell verwendete Gerät wird in der Eigenschaft Current des Gerätemanagers angegeben. Current wird erstellt, wenn eine Anwendung den Zugriff auf TCaptureDeviceManager anfordert und bleibt bis zum Schließen der Anwendung erhalten.
Codebeispiel
// Delphi declaration
var
VideoCamera : TVideoCaptureDevice;
begin
// Get access to the default video capture device
VideoCamera := TCaptureDeviceManager.Current.DefaultVideoCaptureDevice;
if VideoCamera <> nil then
begin
//do something
end;
end;
// C++ declaration
TCaptureDeviceManager* CaptureManager = TCaptureDeviceManager::Current;
// Get access to the default video capture device
TVideoCaptureDevice* VideoCamera = CaptureManager->DefaultVideoCaptureDevice;
if(VideoCamera){
//do something
}
Um die Aufnahme zu starten oder zu stoppen, müssen Sie mit dem TCaptureDeviceManager auf das Gerät zugreifen. Geben Sie Aufnahmegeräte nie explizit frei; dies darf nur durch den Aufnahmemanager erfolgen.
Mit TCaptureDeviceManager können Sie von Drittherstellern entwickelte Aufnahmegeräte hinzufügen. Dieses neue Gerät kann mit der Methode RegisterCaptureDeviceClass wiederhergestellt werden. Nach der Registrierung des neuen Gerätes kann darauf im TCaptureDeviceManager wie auf jedes Standardgerät zugegriffen werden.
Wiedergabe von Medien
Die Klasse TMedia wurde zur Unterstützung der Wiedergabe von Medienquellen eingeführt. TMedia stellt auch Eigenschaften für Mediadateien, wie Dateiname, Größe, Lautstärke, Status, oder Dauer bereit.
Für einen erleichterten Zugriff wurde die nicht visuelle Komponente TMediaPlayer eingeführt. Rufen Sie die Methode Play und Stop auf, um die Wiedergabe einer Mediendatei zu starten bzw. zu stoppen oder eine laufende Mediendatei zu unterbrechen. Die aktuelle Position wird in der Eigenschaft CurrentTime angegeben. TMediaPlayer stellt auch Eigenschaften für Mediendateien, wie Duration, VideoSize, Volume oder State bereit.
- Für die Wiedergabe einer Audiodatei mit TMediaPlayer geben Sie einfach den Namen der wiederzugebenden Datei in der Eigenschaft FileName an und rufen die Methode Play auf. Der Dateiname muss die Erweiterung und den Pfad der Datei enthalten, damit sie im Speicher gefunden wird.
- Fügen Sie zum Anzeigen eines Videos ein TMediaPlayerControl-Steuerelement hinzu und verknüpfen Sie es durch Setzen der Eigenschaft MediaPlayer des TMediaPlayerControl mit TMediaPlayer. TMediaPlayerControl ist ein leeres Steuerelement, aber damit werden Videos auf Formualren platziert. (Wenn es sich bei der Mediendatei um eine Videodatei handelt, wird mit den Schritten zum Abspielen einer Audiodatei nur der Audioteil des Videos wiedergegeben.)
- Die Standardaktionen für die Media-Player-Komponente, die Sie Steuerelementen oder Menüeinträgen zuordnen können, sind: Start, Stop, PlayPause, CurrentTime, Volume.
Video auf der Android-Plattform
- Videos, die auf einem Android-Gerät wiedergegeben werden, laufen im Vollbildmodus.
- Mit der Schaltfläche Zurück des Gerätes beenden Sie den Vollbildmodus.
- Android-Videodateien haben normalerweise das Format H.263.
- Weitere Informationen finden Sie unter http://developer.android.com/guide/appendix/media-formats.html.
- Auf der Android-Plattform sind .3GP-Dateien typischerweise nur für Audiodaten gedacht, wie im Codefragmente für die mobile Entwicklung|Codefragment für die mobile Entwicklung AudioRecPlay gezeigt.
- Das .3GP-Format kann aber auch die Videowiedergabe unterstützen. Wenn Sie in FMX.Media.Android.pas die Verwendung von Video-Codec festlegen, können Sie Videos wie bei anderen Dateiformaten (wie z. B. mp4) abspielen. Diese Änderung würde allerdings bedeuten, dass Sie mit AudioRecSample keine Audiodateien aufnehmen und dann abspielen können.
Codebeispiel
//Delphi declaration
MediaPlayer1.FileName := 'myVideo.avi';
if MediaPlayer1.Media <> nil then
begin
MediaPlayer1.Play;
end;
// C++ declaration
MediaPlayer1->FileName="myVideo.avi";
if(MediaPlayer1->Media!=null)
{
MediaPlayer1->Play();
}
Das FireMonkey-Feature für die Audio/Video-Wiedergabe unterstützt native Plattformformate für Mediendateien. Mit TMediaCodecManager können Sie benutzerdefinierte Medien-Codecs zur Erweiterung der Audio/Video-Unterstützung hinzufügen.
Siehe auch
- FMX.Media.TCaptureDeviceManager
- FMX.Media.TCaptureDeviceManager.DefaultAudioCaptureDevice
- FMX.Media.TCaptureDeviceManager.DefaultVideoCaptureDevice
- FMX.Media.TMediaPlayer
- FMX.Media.TMediaPlayerControl
- FMX.Media.TMedia
- Aufnehmen von Audio
- Einer Anwendung Audio- oder Videoclips hinzufügen
- Tutorial: Audio-Video in FireMonkey
- Codefragmente für die mobile Entwicklung
Beispiele
- FireMonkey Audio Rec-Play (Beispiel)
- Media Player (Beispiel)