2013-09-02 6 views
2

Я хочу играть звук в обоих окнах и MAC OS X. Для воспроизведения звука в Windows, используется что-то вроде этого:Как играть в системный звук в Delphi FireMonkey XE4?

PlaySound('C:\Windows\Media\Windows Default.wav', 0, SND_FILENAME + SND_ASYNC); 

я уверен, что я должен использовать TMediaPlayer.

+0

В системе ** ** звук ** должен воспроизводиться как 'PlaySound ('SystemStart', 0, SND_ALIAS)'. –

ответ

3

Вы правильно, вы можете использовать TMediaPlayer компонент, документация четко говорится:

TMediaPlayer воспроизведения аудио файлов и аудио компонент видео файла.

Чтобы указать файл мультимедиа, который будет воспроизводиться текущим TMediaPlayer, задает свойство FileName. Имя файла должно содержать путь к файлу , поэтому его можно локализовать в памяти и в расширении. Вызвать Воспроизвести и Остановить способы начать воспроизведение медиафайла или остановить или приостановить рабочий файл мультимедиа. Текущая позиция определяется через свойство CurrentTime.

TMediaPlayer также предоставляет файлы мультимедиа , такие как Duration, VideoSize, Volume или State.

Относительно поддерживаемых форматов файлов (TMediaCodecManager).

В документации говорится следующее:

Используйте TMediaCodecManager для доступа, управления и регистрации кодеков быть используется при воспроизведении мультимедийных файлов.

The поддерживаемых мультимедийных файлов форматов являются носителями форматов для каждой платформы:

Для Windows:
Аудио форматы: .wma, .mp3, .wav
Видео форматы: .avi, .wmv

для Mac OS/прошивки:
Аудио форматов: .mp3, .caf
видео форматов: .mov, .m4v, .mp4

Используя TMediaCodecManager, можно зарегистрировать специальные медиакодеки для расширения поддержки аудио/видео.

Быстрый пример:

procedure TForm1.Button1Click(Sender: TObject); 
begin 
MediaPlayer1.FileName := 'D:\test.mp3'; 
MediaPlayer1.Play; 
end; 

Вы должны иметь возможность воспроизводить файлы mp3 в FireMonkey на разных платформах, но это выходит за рамки этого вопроса.

+0

Ааа, так, некоторые '{$ IfDef MSWindows} WindowsPath {$ ELSE} MacOSXPath {$ ENDIF} MSWindows' Я, хотя есть некоторые 'MediaPlayer1.FileName: = TSound.SystemQuestion;' или что-то. –

+0

@ PeterVonča Я верю, что он имеет в виду, что он думал, что будут константы, указывающие на соответствующие звуки системы, чтобы не было необходимости в IFDEF. Я смущен: «Для воспроизведения аудиофайла на устройстве iOS с помощью TMediaPlayer используйте один из следующих форматов: .wav на Windows. .caf на iOS и Mac OS X» - как насчет воспроизведения MP3 или какой-то более стандартный формат? – alcalde

+1

@alcalde, TMediaPlayer принимает зарегистрированные по умолчанию форматы, но вы можете добавить больше через TMediaCodecManager. – Peter

Смежные вопросы