如何使用Delphi FMX TMediaPlayer调整声音的平衡L / R.

时间:2016-06-30 12:56:30

标签: delphi audio firemonkey delphi-xe6

我目前使用Delphi XE6和Delphi Seattle:

我正忙着在Firemonkey上放一个需要播放声音文件的应用程序(mp3,wav等)。调整主音量是直截了当的,但似乎调整播放声音文件的从左到右的平衡不是。

这是我实现此专长的代码,但它在FMX中不受支持,因为它主要调用Windows API函数。任何人都可以帮助使用API​​函数来调用FMX平台吗?在这一点上,我希望至少支持Android设备。如果还有其他/替代代码(或带有替代代码的编译器指令设置)来覆盖iOS设备,那将非常感激。

非常感谢你!

这是我到目前为止所拥有的......

function GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean;
var
  WaveOutCaps: TWAVEOUTCAPS;
  Volume: DWORD;
begin
  Result := False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
    begin
      Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR;
      LVol   := LoWord(Volume);
      RVol   := HiWord(Volume);
    end;
end;

function SetWaveVolume(const AVolume: DWORD): Boolean;
var
  WaveOutCaps: TWAVEOUTCAPS;
begin
  Result := False;
  if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
    if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
      Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR; 
end;

0 个答案:

没有答案